w{up|xUkUq^YX%{tEjd<$RAv8^-
zbTY#gDKgH_Bqh46UNktM4}PwSHUg|`6oa@tqt|NN5aa$f42=Cau0w@xQ@&
zhS~$0V&kMV3GZ}GfV4+_9@7CA#q-HQCDD7DGY)&qBXM~$UZUr
z6F*Gt*$86{;mY-r;@3kcmByr{DB)80T3nNaCH@=_G!^^n;ehuCi`}z)A
z%U%nEYF8ipF*3Y$QElWI*#%vwGS#MqU8Iml-bgt{i7foWuj2h
z@vZHZ#ng~T7T-cp-bbRkv`ouRU);28B{X7}*mgp$;C9m7z;L#!yd|eCi%V%I^maJ+CK$Uo)n{lePP>IXRwM9Ifgd&5w5<5W$S53no
z0cTtD`Etz94HdX1)O}2
zXHg!V7O?^BSbk@`JhWlDiOSn|O?~FHyO{{^+LJ4*{B~8TY}rfllLZZ&alUYR{Ez}H
zv4;Qv000A`Ylil-oI|6*>suVwhggL)E-R-_ojP>s)2UKBcA^9b5Div$t6QnayU4~u
zdP0x@U$w{Tqx1>+a{+05U5E{c8?rY`M3L@twK-%(JV%>pVbJ%)+LX+zjje+q02B=*
z!-V2xX!wh*0M9VT$LvXtPhNoLM1`M`_tVnH=OcE^KD4>?2^lifh`1Xc?_1N
z!73PkQgsHFLa|`mAF^63c?k!TWk7;rK#aD_^nlazl89QF6Q7{QdrB0c_ksbTcM|ro
za=OR3isE^0Bpp{_OwNUC>xH|-?0kYw;OC+to-oQH*f?oNEXrV<2HqhkbF;d){q7&f
zVlS1I_P-T==tbXFwk`Oj13=WSa+1P~u69#RDspI8R?9gVb7Vg#EwKawWcIpOk7%|}
zjX4O5=Yw;zx{J0m$$|A*YLQ2dWxe3|=~vPS1uy&cFak$O+LE65)DUb(>qP_57bG
zncy`DN003v7jwK$X*Y_?atGi6ISrJ^{MfdZPN}3gxqEJ;RLo!yrfn&u4vTCzBjVcE
zpNO)etbtI}QgJkf1>BFyEBe!pqHSS(WiT|~xlesHX5GqIrjb5MOta6kG?!&Zq#0!r
z{cf@j4wjDj(AGpy`^AD!aRg^f5c8rWy@5s$DoAH
zJs`mJVRcm3BmwoL1Oqbf9t_wZwzDR^p?mYfkv6?NT(`R#p4?ju194Qsk6D5j+qWTB
zLE)WS;o^tWa=nYG$@6b;T>To-HJnltUXHqNH3Urhb^LRE<39toTNtJl2{t~j#cfx?
zrBP2TaS^sEUxCJMVydb^f*No$c87Rgz?s-Hc>#WPDa-xv1(HiW45|(2(jz?Yv`1Dk
z77zu2DIO@{8U+>hEQstyv|h(ijPIUF8-xc7$%N?(`dB)o#2ZQjvJ3;h;?CRu<6sZt
zCz|`F9)P;T&+XfIXi4G+(W;nyOizTMYrY!T2FvXT6YFu-Y1NGoq-=>JpLe-JHc0$?
z548ZJUAK1C#^UuUA_;d1hn2LVA)RA!a4I8G0Hm7kpbv0rj)akTt~_D#OD#Kg^t#GwxLbhLh5u7coNX^`^fnZg9m)%W-ahoxw|4HC+Gb|_8C}Y|U
zbk&uHvF5{JfasV*dkY55e}E*e8J9I>a0$IK?}}9gFA_q34AQQ%C2TQqw2}nffB+an
zDxeu;nfs>|Myw|A00LzlYEb%}w^p4mDuf6SAV7fv1PBly8pQ8!4jede;lqax95_d(
zmd!^sq1G^_ILA-`003Gk8Mft%vj6}90001CpkImCLj85KPcg3ab`{rp%AOJDG_n&q
z181Bz_3_&SXcUEUbPkeN0CKG`;Pp&=_Iz#b1+x1o(ricBCLZ+d_390Glx{f^E
z%@crRA8D5e5!4SayW4$|@l;lBWv&W6Sj;wFwgR)}D&zREAcE!AqaC@xb>j|LXep2!
zr}6!wTz*4dxz`*?*41v&CO;4u{!_ig!F4W9oFJz%*u4>l;O^>R^c_Sto>vqy(Fl^2?}#axT3BL=p^Egx=g
zH7KJU%aak(A4*$w$wfsIL_IC;swhMFa3G?u$K82AA(uQZy`dB-ZLB;!Z0V?5_Mr=BSn;Uax?EVl#JDZ8$*-V^t
z=MN&wUMIv`wTjwhpIXq7Q-t)+#}tZRv}KxyvXM6Nr)^)7O;(_Tp7(Ip9I^jDS@arL
z;%zf|;k)Bg;5Q*Juze!_1>3ID`sHh0?CFobh8oAZX@O$y(I6?=G|H*q_FcPHLm+-h
zL70A^GJ(@fV-BN>1C*{1lOXG{LKUa=Gf^e`=19~QXeG2LKUfLdF(fX3_!
zmK1dpGd>7WW<^Tr#o}SVpl&RNTe&|ho%>9UmHrRH36n*N2c1*T)}=IR;Kk;wwLEai
zXAeNH%i!k+-`YXUe?Qj;MuS?ep6{?*NBc5oI_2gRkVUwoT^PB5)Z13yEoq+fOg&Ck
z%hV~%x&Uj;w9+K6Nv&FR`JSb_u8PXUUwgPqTmkc*Fv0u@b
Date: Wed, 14 May 2025 14:35:22 +0300
Subject: [PATCH 03/11] Updated docs for Remnawave v1.6.0 (subscription page
docker-compose file structure and envs) and Migrate v1.4.0 with custom
headers support
---
docs/migrate/marzban.md | 37 +++++++++++++++++++++++++------------
1 file changed, 25 insertions(+), 12 deletions(-)
diff --git a/docs/migrate/marzban.md b/docs/migrate/marzban.md
index d912505..85cf548 100644
--- a/docs/migrate/marzban.md
+++ b/docs/migrate/marzban.md
@@ -35,8 +35,8 @@ Download the precompiled Remnawave migration tool from the GitHub releases page.
# Create and navigate to a working directory
mkdir -p /opt/remnawave && cd /opt/remnawave
-# Download the latest version (v1.3.0 as of this guide)
-wget https://github.com/remnawave/migrate/releases/download/v1.3.0/remnawave-migrate-v1.3.0-linux-amd64.tar.gz
+# Download the latest version (v1.4.0 as of this guide)
+wget https://github.com/remnawave/migrate/releases/download/v1.4.0/remnawave-migrate-v1.4.0-linux-amd64.tar.gz
```
### 2.2. Extracting the Tool
@@ -45,7 +45,7 @@ Unpack the downloaded archive to access the binary.
```bash
# Extract the tarball
-tar -xf remnawave-migrate-v1.3.0-linux-amd64.tar.gz
+tar -xf remnawave-migrate-v1.4.0-linux-amd64.tar.gz
```
:::tip
@@ -84,10 +84,21 @@ The tool supports the following flags and their corresponding environment variab
| `--batch-size` | `BATCH_SIZE` | Number of users to process per batch | `100` |
| `--last-users` | `LAST_USERS` | Migrate only the last N users (0 = all users) | `0` |
| `--preferred-strategy` | `PREFERRED_STRATEGY` | Traffic reset strategy for all users | - |
+| `--source-headers` | `SOURCE_HEADERS` | Additional headers for source panel | - |
+| `--dest-headers` | `DEST_HEADERS` | Additional headers for Remnawave (e.g., X-Api-Key) | - |
| `--preserve-status` | `PRESERVE_STATUS` | Preserve user status from source panel | `false` |
:::tip
+If you’re using Remnawave with additional security provided by Caddy, you need to follow these steps:
+1. Log in to the Auth Portal and navigate to API Keys
+2. Issue a new API key
+3. Pass this key using the --dest-headers flag in the following format:
+```bash
+--dest-headers="X-Api-Key:api-key-from-auth-portal"
+```
+ :::
+:::tip
- Use `--last-users=5` for a test migration with a small subset of users.
- Obtain your Remnawave API token from the Remnawave panel settings (e.g., under API or Integrations).
:::
@@ -126,13 +137,14 @@ services:
hostname: remnawave-subscription-page
restart: always
environment:
- - REMNAWAVE_PLAIN_DOMAIN=domain.com
- - SUBSCRIPTION_PAGE_PORT=3010
+ - APP_PORT=3010
+ - REMNAWAVE_PANEL_URL=http://remnawave:3000
ports:
- '127.0.0.1:3010:3010'
networks:
- remnawave-network
-
+ volumes:
+ - ./app-config.json:/opt/app/frontend/assets/app-config.json
networks:
remnawave-network:
driver: bridge
@@ -151,17 +163,18 @@ services:
hostname: remnawave-subscription-page
restart: always
environment:
- - REMNAWAVE_PLAIN_DOMAIN=domain.com
- - SUBSCRIPTION_PAGE_PORT=3010
+ - APP_PORT=3010
+ - REMNAWAVE_PANEL_URL=http://remnawave:3000
- MARZBAN_LEGACY_LINK_ENABLED=true
- MARZBAN_LEGACY_SECRET_KEY=secret
- REMNAWAVE_API_TOKEN=token
- - CUSTOM_SUB_PREFIX=custom
+ - CUSTOM_SUB_PREFIX=sub
ports:
- '127.0.0.1:3010:3010'
networks:
- remnawave-network
-
+ volumes:
+ - ./app-config.json:/opt/app/frontend/assets/app-config.json
networks:
remnawave-network:
driver: bridge
@@ -172,8 +185,8 @@ networks:
| Variable | Description | Example Value |
| ----------------------------- | ----------------------------------------------------------------------------------------------- | ------------------ |
-| `REMNAWAVE_PLAIN_DOMAIN` | The address of your Remnawave panel (without `https://`). | `panel.domain.com` |
-| `SUBSCRIPTION_PAGE_PORT` | The port on which the subscription page service runs. | `3010` |
+| `REMNAWAVE_PANEL_URL` | Remnawave Panel URL, can be http://remnawave:3000 or https://panel.example.com | `http://remnawave:3000` |
+| `APP_PORT` | The port on which the subscription page service runs. | `3010` |
| `MARZBAN_LEGACY_LINK_ENABLED` | Enables support for legacy Marzban subscription links. Must be `true` to use the options below. | `true` |
| `MARZBAN_LEGACY_SECRET_KEY` | The secret key from your Marzban database, required for decrypting legacy links. | `secret` |
| `REMNAWAVE_API_TOKEN` | The API token generated from your Remnawave panel dashboard (under "API Tokens"). | `token` |
From 7da0215bcf4be07a1938b8321666e6f0a8b78d03 Mon Sep 17 00:00:00 2001
From: mishablokhin
Date: Wed, 14 May 2025 14:46:34 +0300
Subject: [PATCH 04/11] Fix formating
---
docs/migrate/marzban.md | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/docs/migrate/marzban.md b/docs/migrate/marzban.md
index 85cf548..0b4005f 100644
--- a/docs/migrate/marzban.md
+++ b/docs/migrate/marzban.md
@@ -84,18 +84,18 @@ The tool supports the following flags and their corresponding environment variab
| `--batch-size` | `BATCH_SIZE` | Number of users to process per batch | `100` |
| `--last-users` | `LAST_USERS` | Migrate only the last N users (0 = all users) | `0` |
| `--preferred-strategy` | `PREFERRED_STRATEGY` | Traffic reset strategy for all users | - |
-| `--source-headers` | `SOURCE_HEADERS` | Additional headers for source panel | - |
-| `--dest-headers` | `DEST_HEADERS` | Additional headers for Remnawave (e.g., X-Api-Key) | - |
-| `--preserve-status` | `PRESERVE_STATUS` | Preserve user status from source panel | `false` |
+| `--source-headers` | `SOURCE_HEADERS` | Additional headers for source panel | - |
+| `--dest-headers` | `DEST_HEADERS` | Additional headers for Remnawave (e.g., X-Api-Key) | - |
+| `--preserve-status` | `PRESERVE_STATUS` | Preserve user status from source panel | `false` |
:::tip
If you’re using Remnawave with additional security provided by Caddy, you need to follow these steps:
1. Log in to the Auth Portal and navigate to API Keys
2. Issue a new API key
3. Pass this key using the --dest-headers flag in the following format:
-```bash
---dest-headers="X-Api-Key:api-key-from-auth-portal"
-```
+ ```bash
+ --dest-headers="X-Api-Key:api-key-from-auth-portal"
+ ```
:::
:::tip
From 1889f2d4523c6a73812d2ec2c90a55641c96fbd7 Mon Sep 17 00:00:00 2001
From: Fraybyl
Date: Wed, 14 May 2025 16:43:59 +0300
Subject: [PATCH 05/11] feat: Custom template
---
docs/install/remnawave-subscription-page.md | 38 +++++++++++++++++++--
1 file changed, 36 insertions(+), 2 deletions(-)
diff --git a/docs/install/remnawave-subscription-page.md b/docs/install/remnawave-subscription-page.md
index 409d1e3..06af620 100644
--- a/docs/install/remnawave-subscription-page.md
+++ b/docs/install/remnawave-subscription-page.md
@@ -68,8 +68,8 @@ You can replace it parameter with, for example,
- CUSTOM_SUB_PREFIX=sub
```
-to get an additional nested path for the subscription page.
-But in that case, in the `.env` file for the `remnawave` container, you will need to set the corresponding parameter correctly: `SUB_PUBLIC_DOMAIN=link.domain.com/sub`.
+to get an additional nested path for the subscription page.
+But in that case, in the `.env` file for the `remnawave` container, you will need to set the corresponding parameter correctly: `SUB_PUBLIC_DOMAIN=link.domain.com/sub`.
And you will need to specify similar changes to the valid path in your configurations for Nginx/Caddy.
:::
@@ -693,6 +693,40 @@ Some applications require the subscription URL to be Base64 encoded:
"isNeedBase64Encoding": true
```
+### Mounting custom template
+
+- **`index.html`**
+ Must be mounted at:
+ ```yaml
+ volumes:
+ - ./index.html:/opt/app/frontend/index.html
+ ```
+* **Static assets (all files in the `assets` directory)**
+ Must be mounted at:
+
+ ```yaml
+ volumes:
+ - ./assets:/opt/app/frontend/assets
+ ```
+:::tip
+You can find the source index.html here:
+[subscription-page/frontend/index.html](https://github.com/remnawave/subscription-page/blob/main/frontend/index.html)
+:::
+
+#### Template Variables
+
+Your HTML template must include three variables:
+
+| Variable | Description |
+| --------------------------- | -------------------------------------------------------------------------------------------------------- |
+| `<%= metaTitle %>` | The tag content for the subscription page. |
+| `<%= metaDescription %>` | The tag content for the subscription page. |
+| `<%- panelData %>` | Base64‑encoded data (string), exactly matching the response from the /api/sub//info endpoint. |
+
+:::danger
+After mounting your template, ensure all three variables are present and used correctly in your code. If so, your subscription page will work out of the box without any further modifications.
+:::
+
### Mounting to the subscrion-page
Modify your docker-compose.yml file to mount the app-config.json file to the subscription-page container:
From 56e1a9158af593d4725f71164a56c3037908d39a Mon Sep 17 00:00:00 2001
From: Fraybyl
Date: Wed, 14 May 2025 16:46:05 +0300
Subject: [PATCH 06/11] fix: formatting
---
docs/install/remnawave-subscription-page.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/install/remnawave-subscription-page.md b/docs/install/remnawave-subscription-page.md
index 06af620..9f6777c 100644
--- a/docs/install/remnawave-subscription-page.md
+++ b/docs/install/remnawave-subscription-page.md
@@ -701,7 +701,7 @@ Some applications require the subscription URL to be Base64 encoded:
volumes:
- ./index.html:/opt/app/frontend/index.html
```
-* **Static assets (all files in the `assets` directory)**
+- **Static assets (all files in the `assets` directory)**
Must be mounted at:
```yaml
From a95285f7128b95baa64ef541eb98944d1260b431 Mon Sep 17 00:00:00 2001
From: Fraybyl
Date: Wed, 14 May 2025 16:51:26 +0300
Subject: [PATCH 07/11] fix: formatting and text
---
docs/install/remnawave-subscription-page.md | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/docs/install/remnawave-subscription-page.md b/docs/install/remnawave-subscription-page.md
index 9f6777c..bf5502c 100644
--- a/docs/install/remnawave-subscription-page.md
+++ b/docs/install/remnawave-subscription-page.md
@@ -719,15 +719,15 @@ Your HTML template must include three variables:
| Variable | Description |
| --------------------------- | -------------------------------------------------------------------------------------------------------- |
-| `<%= metaTitle %>` | The tag content for the subscription page. |
-| `<%= metaDescription %>` | The tag content for the subscription page. |
-| `<%- panelData %>` | Base64‑encoded data (string), exactly matching the response from the /api/sub//info endpoint. |
+| `<%= metaTitle %>` | The <title> tag content for the subscription page. |
+| `<%= metaDescription %>` | The <meta name="description"> tag content for the subscription page. |
+| `<%- panelData %>` | Base64‑encoded data (string), exactly matching the response from the /api/sub/``/info endpoint. |
:::danger
After mounting your template, ensure all three variables are present and used correctly in your code. If so, your subscription page will work out of the box without any further modifications.
:::
-### Mounting to the subscrion-page
+### Mounting to the subscription-page
Modify your docker-compose.yml file to mount the app-config.json file to the subscription-page container:
From 460cc7a97e6398dca6d064dd5628043095681810 Mon Sep 17 00:00:00 2001
From: kastov
Date: Wed, 14 May 2025 16:59:14 +0300
Subject: [PATCH 08/11] docs: enhance subscription page template instructions
and examples
---
docs/install/remnawave-subscription-page.md | 62 +++++++++++++++------
1 file changed, 44 insertions(+), 18 deletions(-)
diff --git a/docs/install/remnawave-subscription-page.md b/docs/install/remnawave-subscription-page.md
index bf5502c..a5f8b64 100644
--- a/docs/install/remnawave-subscription-page.md
+++ b/docs/install/remnawave-subscription-page.md
@@ -693,41 +693,67 @@ Some applications require the subscription URL to be Base64 encoded:
"isNeedBase64Encoding": true
```
+---
+
### Mounting custom template
+This can be helpful if you want fully change UI of the subscription page.
+
- **`index.html`**
Must be mounted at:
- ```yaml
- volumes:
- - ./index.html:/opt/app/frontend/index.html
- ```
+ ```yaml
+ volumes:
+ - ./index.html:/opt/app/frontend/index.html
+ ```
- **Static assets (all files in the `assets` directory)**
Must be mounted at:
- ```yaml
- volumes:
- - ./assets:/opt/app/frontend/assets
- ```
-:::tip
-You can find the source index.html here:
-[subscription-page/frontend/index.html](https://github.com/remnawave/subscription-page/blob/main/frontend/index.html)
-:::
+ ```yaml
+ volumes:
+ - ./assets:/opt/app/frontend/assets
+ ```
+
+ :::tip
+ You can find the source index.html here:
+ [subscription-page/frontend/index.html](https://github.com/remnawave/subscription-page/blob/main/frontend/index.html)
+ :::
#### Template Variables
Your HTML template must include three variables:
-| Variable | Description |
-| --------------------------- | -------------------------------------------------------------------------------------------------------- |
-| `<%= metaTitle %>` | The <title> tag content for the subscription page. |
-| `<%= metaDescription %>` | The <meta name="description"> tag content for the subscription page. |
-| `<%- panelData %>` | Base64‑encoded data (string), exactly matching the response from the /api/sub/``/info endpoint. |
+| Variable | Description |
+| ------------------------ | ---------------------------------------------------------------------------------------------------------- |
+| `<%= metaTitle %>` | Will by resolved as META_TITLE |
+| `<%= metaDescription %>` | Will by resolved as META_DESCRIPTION |
+| `<%- panelData %>` | Base64‑encoded data (string), exactly matching the response from the /api/sub/``/info endpoint. |
+
+
+Example of using panelData
+
+```js
+let panelData
+panelData = '<%- panelData %>'
+try {
+ panelData = JSON.parse(atob(panelData))
+} catch (error) {
+ console.error('Error parsing panel data:', error)
+}
+```
+
+
:::danger
After mounting your template, ensure all three variables are present and used correctly in your code. If so, your subscription page will work out of the box without any further modifications.
:::
-### Mounting to the subscription-page
+Restart the subscription-page container to apply the changes.
+
+```bash
+docker compose down && docker compose up -d && docker compose logs -f
+```
+
+### Custom app-config.json (custom apps)
Modify your docker-compose.yml file to mount the app-config.json file to the subscription-page container:
From 243bc6e519206ae919135bd3329afbc3e9f0b501 Mon Sep 17 00:00:00 2001
From: kastov
Date: Wed, 14 May 2025 17:04:34 +0300
Subject: [PATCH 09/11] docs: correct variable descriptions in subscription
page template
---
docs/install/remnawave-subscription-page.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/install/remnawave-subscription-page.md b/docs/install/remnawave-subscription-page.md
index a5f8b64..2724d31 100644
--- a/docs/install/remnawave-subscription-page.md
+++ b/docs/install/remnawave-subscription-page.md
@@ -724,8 +724,8 @@ Your HTML template must include three variables:
| Variable | Description |
| ------------------------ | ---------------------------------------------------------------------------------------------------------- |
-| `<%= metaTitle %>` | Will by resolved as META_TITLE |
-| `<%= metaDescription %>` | Will by resolved as META_DESCRIPTION |
+| `<%= metaTitle %>` | Will be resolved as META_TITLE (from .env) |
+| `<%= metaDescription %>` | Will be resolved as META_DESCRIPTION (from .env) |
| `<%- panelData %>` | Base64‑encoded data (string), exactly matching the response from the /api/sub/``/info endpoint. |
From f847e9168722f20ea96dd5c98c2700c55331aeb3 Mon Sep 17 00:00:00 2001
From: Fraybyl
Date: Thu, 15 May 2025 10:43:45 +0300
Subject: [PATCH 10/11] feat: node logging
---
docs/install/remnawave-node.md | 50 +++++++++++++++++++++++++++++++++-
1 file changed, 49 insertions(+), 1 deletion(-)
diff --git a/docs/install/remnawave-node.md b/docs/install/remnawave-node.md
index 6fdca76..4f4b39a 100644
--- a/docs/install/remnawave-node.md
+++ b/docs/install/remnawave-node.md
@@ -68,7 +68,7 @@ docker compose up -d && docker compose logs -f -t
You can mount additional geosite files into the `/usr/local/share/xray/` directory in the container.
-:::caution
+:::caution
Do not mount the entire folder. Otherwise, you will overwrite the default Xray geosite files. Mount each file individually.
:::
@@ -110,3 +110,51 @@ Usage in xray config:
]
}
```
+### Log from Node
+
+You can access logs from the node by mounting them to your host's file system.
+
+:::caution
+You **must** set up log rotation, otherwise the logs will fill up your disk!
+:::
+
+Add the following to the `docker-compose.yml` file:
+
+```yaml
+services:
+ remnanode:
+ container_name: remnanode
+ hostname: remnanode
+ image: remnawave/node:latest
+ restart: always
+ network_mode: host
+ env_file:
+ - .env
+ // highlight-next-line-green
+ volumes:
+ // highlight-next-line-green
+ - '/var/lib/remna:/var/lib/remna'
+```
+
+Usage in xray config:
+
+```json
+ "log": {
+ "error": "/var/lib/remna/error.log",
+ "access": "/var/lib/remna/access.log",
+ "loglevel": "warning"
+ }
+```
+
+Log rotation using logrotate:
+
+```bash
+ /var/lib/remna/*.log {
+ size 50M
+ rotate 5
+ compress
+ missingok
+ notifempty
+ copytruncate
+ }
+```
From 7cd2a1cea35088ecf46278e4b237237017460200 Mon Sep 17 00:00:00 2001
From: kastov
Date: Fri, 16 May 2025 19:20:29 +0300
Subject: [PATCH 11/11] docs: update SDK version compatibility table in
TypeScript SDK documentation
---
docs/sdk/typescript-sdk.md | 2 ++
1 file changed, 2 insertions(+)
diff --git a/docs/sdk/typescript-sdk.md b/docs/sdk/typescript-sdk.md
index 6a06566..b69c866 100644
--- a/docs/sdk/typescript-sdk.md
+++ b/docs/sdk/typescript-sdk.md
@@ -28,6 +28,8 @@ Always pick and pin the correct version of the SDK to match the version of the R
| Contract Version | Remnawave Panel Version |
| ---------------- | ----------------------- |
+| 0.7.2 | 1.6.3 |
+| 0.7.1 | 1.6.2 |
| 0.7.1 | 1.6.1 |
| 0.7.0 | 1.6.0 |
| 0.4.5 | 1.5.7 |