Skip to content

Commit 1993c22

Browse files
authored
chore: release v2.3.0
Merge pull request #120 from remnawave/dev
2 parents ac9bcfd + 9d69373 commit 1993c22

File tree

683 files changed

+11833
-12589
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

683 files changed

+11833
-12589
lines changed

.env.sample

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -65,13 +65,6 @@ WEBHOOK_URL=https://your-webhook-url.com/endpoint
6565
### This secret is used to sign the webhook payload, must be exact 64 characters. Only a-z, 0-9, A-Z are allowed.
6666
WEBHOOK_SECRET_HEADER=vsmu67Kmg6R8FjIOF1WUY8LWBHie4scdEqrfsKmyf4IAf8dY3nFS0wwYHkhh6ZvQ
6767

68-
### HWID DEVICE DETECTION AND LIMITATION ###
69-
# Don't enable this if you don't know what you are doing.
70-
# Review documentation before enabling this feature.
71-
# https://docs.rw/docs/features/hwid-device-limit/
72-
HWID_DEVICE_LIMIT_ENABLED=false
73-
74-
7568
### Bandwidth usage reached notifications
7669
BANDWIDTH_USAGE_NOTIFICATIONS_ENABLED=false
7770
# Only in ASC order (example: [60, 80]), must be valid array of integer(min: 25, max: 95) numbers. No more than 5 values.

Dockerfile

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,23 +8,23 @@ ARG FRONTEND_WITH_CROWDIN=https://github.com/remnawave/frontend/releases/latest/
88
RUN apk add --no-cache curl unzip ca-certificates \
99
&& curl -L ${FRONTEND_URL} -o frontend.zip \
1010
&& unzip frontend.zip -d frontend_temp \
11-
&& curl -L https://validator.remna.dev/wasm_exec.js -o frontend_temp/dist/wasm_exec.js \
12-
&& curl -L https://validator.remna.dev/xray.schema.json -o frontend_temp/dist/xray.schema.json \
13-
&& curl -L https://validator.remna.dev/xray.schema.cn.json -o frontend_temp/dist/xray.schema.cn.json \
14-
&& curl -L https://validator.remna.dev/main.wasm -o frontend_temp/dist/main.wasm
11+
&& curl -L https://validator.remna.dev/wasm_exec.js -o frontend_temp/dist/assets/wasm_exec.js \
12+
&& curl -L https://validator.remna.dev/xray.schema.json -o frontend_temp/dist/assets/xray.schema.json \
13+
&& curl -L https://validator.remna.dev/xray.schema.cn.json -o frontend_temp/dist/assets/xray.schema.cn.json \
14+
&& curl -L https://validator.remna.dev/main.wasm -o frontend_temp/dist/assets/main.wasm
1515

1616
RUN if [ "$BRANCH" = "dev" ]; then \
1717
curl -L ${FRONTEND_WITH_CROWDIN} -o frontend-crowdin.zip \
1818
&& unzip frontend-crowdin.zip -d frontend_crowdin_temp \
19-
&& curl -L https://validator.remna.dev/wasm_exec.js -o frontend_crowdin_temp/dist/wasm_exec.js \
20-
&& curl -L https://validator.remna.dev/xray.schema.json -o frontend_crowdin_temp/dist/xray.schema.json \
21-
&& curl -L https://validator.remna.dev/xray.schema.cn.json -o frontend_crowdin_temp/dist/xray.schema.cn.json \
22-
&& curl -L https://validator.remna.dev/main.wasm -o frontend_crowdin_temp/dist/main.wasm; \
19+
&& curl -L https://validator.remna.dev/wasm_exec.js -o frontend_crowdin_temp/dist/assets/wasm_exec.js \
20+
&& curl -L https://validator.remna.dev/xray.schema.json -o frontend_crowdin_temp/dist/assets/xray.schema.json \
21+
&& curl -L https://validator.remna.dev/xray.schema.cn.json -o frontend_crowdin_temp/dist/assets/xray.schema.cn.json \
22+
&& curl -L https://validator.remna.dev/main.wasm -o frontend_crowdin_temp/dist/assets/main.wasm; \
2323
else \
2424
mkdir -p frontend_crowdin_temp/dist; \
2525
fi
2626

27-
FROM node:22.18.0-alpine AS backend-build
27+
FROM node:22.21-alpine AS backend-build
2828
WORKDIR /opt/app
2929

3030
# RUN apk add python3 python3-dev build-base pkgconfig libunwind-dev
@@ -49,7 +49,7 @@ RUN npm cache clean --force
4949

5050
RUN npm prune --omit=dev
5151

52-
FROM node:22.18.0-alpine
52+
FROM node:22.21-alpine
5353
WORKDIR /opt/app
5454

5555
ARG BRANCH=main
@@ -67,6 +67,7 @@ ENV PRISMA_HIDE_UPDATE_MESSAGE=true
6767
ENV PRISMA_ENGINES_CHECKSUM_IGNORE_MISSING=1
6868

6969
ENV PM2_DISABLE_VERSION_CHECK=true
70+
ENV NODE_OPTIONS="--max-old-space-size=16384"
7071

7172
COPY --from=backend-build /opt/app/dist ./dist
7273
COPY --from=frontend /opt/frontend/frontend_temp/dist ./frontend

docker-compose-advanced-prod.yml

Lines changed: 28 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,28 @@
11
x-base: &base
22
image: remnawave/backend:2
3+
4+
x-common: &common
5+
ulimits:
6+
nofile:
7+
soft: 1048576
8+
hard: 1048576
39
restart: always
4-
env_file:
5-
- .env
610
networks:
711
- remnawave-network
812

13+
x-logging: &logging
14+
logging:
15+
driver: json-file
16+
options:
17+
max-size: 100m
18+
max-file: 5
19+
20+
x-env: &env
21+
env_file: .env
22+
923
services:
1024
remnawave-rest-api: # Scaling is OK
11-
<<: *base
25+
<<: [*base, *common, *logging, *env]
1226
container_name: 'remnawave-rest-api'
1327
hostname: remnawave-rest-api
1428
entrypoint: []
@@ -24,7 +38,7 @@ services:
2438
- '127.0.0.1:3000:3000' # Expose Rest API port
2539

2640
remnawave-scheduler: # Do not scale this service!
27-
<<: *base
41+
<<: [*base, *common, *logging, *env]
2842
container_name: 'remnawave-scheduler'
2943
hostname: remnawave-scheduler
3044
entrypoint: ['/bin/sh', 'docker-entrypoint.sh'] # Migrations, seeding, etc. IMPORTANT: Entrypoint needs to be in one of services. Its applies migrations and seeding database!
@@ -44,7 +58,7 @@ services:
4458
start_period: 30s
4559

4660
remnawave-processor: # Do not scale this service!
47-
<<: *base
61+
<<: [*base, *common, *logging, *env]
4862
container_name: 'remnawave-processor'
4963
hostname: remnawave-processor
5064
entrypoint: []
@@ -61,9 +75,8 @@ services:
6175
image: postgres:17.6
6276
container_name: 'remnawave-db'
6377
hostname: remnawave-db
64-
restart: always
65-
env_file:
66-
- .env
78+
<<: [*common, *logging, *env]
79+
6780
environment:
6881
- POSTGRES_USER=${POSTGRES_USER}
6982
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
@@ -73,8 +86,6 @@ services:
7386
- '127.0.0.1:6767:5432'
7487
volumes:
7588
- remnawave-db-data:/var/lib/postgresql/data
76-
networks:
77-
- remnawave-network
7889
healthcheck:
7990
test: ['CMD-SHELL', 'pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}']
8091
interval: 3s
@@ -85,11 +96,13 @@ services:
8596
image: valkey/valkey:8.1-alpine
8697
container_name: remnawave-redis
8798
hostname: remnawave-redis
88-
restart: always
89-
networks:
90-
- remnawave-network
91-
volumes:
92-
- remnawave-redis-data:/data
99+
<<: [*common, *logging]
100+
command: >
101+
valkey-server
102+
--save ""
103+
--appendonly no
104+
--maxmemory-policy noeviction
105+
--loglevel warning
93106
healthcheck:
94107
test: ['CMD', 'valkey-cli', 'ping']
95108
interval: 3s
@@ -104,10 +117,6 @@ networks:
104117

105118
volumes:
106119
remnawave-db-data:
107-
driver: local
108-
external: false
109120
name: remnawave-db-data
110-
remnawave-redis-data:
111121
driver: local
112122
external: false
113-
name: remnawave-redis-data

docker-compose-db-local.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ services:
44
container_name: remnawave-db-local
55
hostname: remnawave-db-local
66
restart: always
7+
shm_size: 4gb
78
env_file:
89
- .env
910
environment:
Lines changed: 32 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,28 @@
1+
x-common: &common
2+
ulimits:
3+
nofile:
4+
soft: 1048576
5+
hard: 1048576
6+
restart: always
7+
networks:
8+
- remnawave-network
9+
10+
x-logging: &logging
11+
logging:
12+
driver: json-file
13+
options:
14+
max-size: 100m
15+
max-file: 5
16+
17+
x-env: &env
18+
env_file: .env
19+
120
services:
221
remnawave-db:
322
image: postgres:17.6
423
container_name: 'remnawave-db'
524
hostname: remnawave-db
6-
restart: always
7-
env_file:
8-
- .env
25+
<<: [*common, *logging, *env]
926
environment:
1027
- POSTGRES_USER=${POSTGRES_USER}
1128
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
@@ -15,33 +32,23 @@ services:
1532
- '127.0.0.1:6767:5432'
1633
volumes:
1734
- remnawave-db-data:/var/lib/postgresql/data
18-
networks:
19-
- remnawave-network
2035
healthcheck:
2136
test: ['CMD-SHELL', 'pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}']
2237
interval: 3s
2338
timeout: 10s
2439
retries: 3
25-
logging:
26-
driver: 'json-file'
27-
options:
28-
max-size: '100m'
29-
max-file: '10'
3040

3141
remnawave-redis:
3242
image: valkey/valkey:8.1-alpine
3343
container_name: remnawave-redis
3444
hostname: remnawave-redis
35-
restart: always
36-
networks:
37-
- remnawave-network
38-
volumes:
39-
- remnawave-redis-data:/data
40-
logging:
41-
driver: 'json-file'
42-
options:
43-
max-size: '100m'
44-
max-file: '10'
45+
<<: [*common, *logging]
46+
command: >
47+
valkey-server
48+
--save ""
49+
--appendonly no
50+
--maxmemory-policy noeviction
51+
--loglevel warning
4552
healthcheck:
4653
test: ['CMD', 'valkey-cli', 'ping']
4754
interval: 3s
@@ -52,13 +59,10 @@ services:
5259
image: remnawave/backend:2
5360
container_name: 'remnawave'
5461
hostname: remnawave
55-
restart: always
62+
<<: [*common, *logging, *env]
5663
ports:
57-
- '127.0.0.1:3000:3000'
58-
env_file:
59-
- .env
60-
networks:
61-
- remnawave-network
64+
- '127.0.0.1:3000:${APP_PORT:-3000}'
65+
- '127.0.0.1:3001:${METRICS_PORT:-3001}'
6266
depends_on:
6367
remnawave-db:
6468
condition: service_healthy
@@ -70,51 +74,30 @@ services:
7074
timeout: 5s
7175
retries: 3
7276
start_period: 30s
73-
logging:
74-
driver: 'json-file'
75-
options:
76-
max-size: '100m'
77-
max-file: '10'
7877

7978
remnawave-subscription-page:
8079
image: remnawave/subscription-page:latest
8180
container_name: remnawave-subscription-page
8281
hostname: remnawave-subscription-page
83-
restart: always
82+
<<: [*common, *logging]
8483
environment:
8584
- REMNAWAVE_PANEL_URL=http://remnawave:3000
8685
- META_TITLE=Subscription page
8786
- META_DESCRIPTION=Subscription page description
8887
ports:
8988
- '127.0.0.1:3010:3010'
90-
networks:
91-
- remnawave-network
9289
depends_on:
9390
- remnawave
94-
logging:
95-
driver: 'json-file'
96-
options:
97-
max-size: '100m'
98-
max-file: '10'
9991

10092
remnawave-cloudflared:
10193
container_name: remnawave-cloudflared
10294
hostname: remnawave-cloudflared
10395
image: cloudflare/cloudflared:latest
104-
env_file:
105-
- .env
106-
networks:
107-
- remnawave-network
108-
restart: always
96+
<<: [*common, *logging, *env]
10997
command: tunnel --no-autoupdate run --token ${CLOUDFLARE_TOKEN}
11098
depends_on:
11199
- remnawave
112100
- remnawave-subscription-page
113-
logging:
114-
driver: 'json-file'
115-
options:
116-
max-size: '100m'
117-
max-file: '10'
118101
healthcheck:
119102
test: ['CMD', 'cloudflared', '--version']
120103
interval: 30s
@@ -130,10 +113,6 @@ networks:
130113

131114
volumes:
132115
remnawave-db-data:
133-
driver: local
134-
external: false
135116
name: remnawave-db-data
136-
remnawave-redis-data:
137117
driver: local
138118
external: false
139-
name: remnawave-redis-data

0 commit comments

Comments
 (0)