Skip to content

Commit ac9bcfd

Browse files
authored
chore: release v2.2.6
Merge pull request #112 from remnawave/dev
2 parents faa3b83 + a422fe2 commit ac9bcfd

File tree

46 files changed

+699
-378
lines changed

Some content is hidden

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

46 files changed

+699
-378
lines changed

.env.sample

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ METRICS_PORT=3001
55
### API ###
66
# Possible values: max (start instances on all cores), number (start instances on number of cores), -1 (start instances on all cores - 1)
77
# !!! Do not set this value more than physical cores count in your machine !!!
8-
# Review documentation: https://remna.st/docs/install/environment-variables#scaling-api
8+
# Review documentation: https://docs.rw/docs/install/environment-variables#scaling-api
99
API_INSTANCES=1
1010

1111
### DATABASE ###
@@ -41,7 +41,7 @@ FRONT_END_DOMAIN=*
4141
### SUBSCRIPTION PUBLIC DOMAIN ###
4242
### DOMAIN, WITHOUT HTTP/HTTPS, DO NOT ADD / AT THE END ###
4343
### Used in "profile-web-page-url" response header and in UI/API ###
44-
### Review documentation: https://remna.st/docs/install/environment-variables#domains
44+
### Review documentation: https://docs.rw/docs/install/environment-variables#domains
4545
SUB_PUBLIC_DOMAIN=panel.domain.com/api/sub
4646

4747
### If CUSTOM_SUB_PREFIX is set in @remnawave/subscription-page, append the same path to SUB_PUBLIC_DOMAIN. Example: SUB_PUBLIC_DOMAIN=sub-page.example.com/sub
@@ -56,17 +56,19 @@ IS_DOCS_ENABLED=false
5656
METRICS_USER=admin
5757
METRICS_PASS=admin
5858

59-
### WEBHOOK ###
59+
# Webhook configuration
60+
# Enable webhook notifications (true/false, defaults to false if not set or empty)
6061
WEBHOOK_ENABLED=false
61-
### Can be https:// or http://
62-
WEBHOOK_URL=https://webhook.site/1234567890
62+
# Webhook URL to send notifications to (can specify multiple URLs separated by commas if needed)
63+
# Only http:// or https:// are allowed.
64+
WEBHOOK_URL=https://your-webhook-url.com/endpoint
6365
### This secret is used to sign the webhook payload, must be exact 64 characters. Only a-z, 0-9, A-Z are allowed.
6466
WEBHOOK_SECRET_HEADER=vsmu67Kmg6R8FjIOF1WUY8LWBHie4scdEqrfsKmyf4IAf8dY3nFS0wwYHkhh6ZvQ
6567

6668
### HWID DEVICE DETECTION AND LIMITATION ###
6769
# Don't enable this if you don't know what you are doing.
6870
# Review documentation before enabling this feature.
69-
# https://remna.st/docs/features/hwid-device-limit/
71+
# https://docs.rw/docs/features/hwid-device-limit/
7072
HWID_DEVICE_LIMIT_ENABLED=false
7173

7274

DEVELOPMENT.md

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
1. Launch the database and redis containers:
2+
3+
```bash
4+
docker compose -f docker-compose-db-local.yml up -d
5+
```
6+
7+
2. Install dependencies:
8+
9+
```bash
10+
npm install
11+
```
12+
13+
3. Migrate the database:
14+
15+
```bash
16+
npm run migrate:deploy
17+
```
18+
19+
4. Generate types:
20+
21+
```bash
22+
npm run migrate:generate
23+
```
24+
25+
5. Seed the database:
26+
27+
```bash
28+
npm run seed:dev
29+
```
30+
31+
6. Running dev mode (if you run multiple instances, make sure to wait before starting the next instance):
32+
33+
- API:
34+
35+
```bash
36+
npm run dev:api
37+
```
38+
39+
- Worker:
40+
41+
```bash
42+
npm run dev:worker
43+
```
44+
45+
- Scheduler:
46+
47+
```bash
48+
npm run dev:scheduler
49+
```

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
Backend for Remnawave Panel.
44

5-
Learn more about Remnawave Panel [here](https://remna.st/).
5+
Learn more about Remnawave Panel [here](https://docs.rw/).
66

77
# Contributors
88

libs/contract/commands/external-squads/update-external-squad.command.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { z } from 'zod';
22

33
import {
44
ExternalSquadHostOverridesSchema,
5+
ExternalSquadResponseHeadersSchema,
56
ExternalSquadSchema,
67
ExternalSquadSubscriptionSettingsSchema,
78
} from '../../models';
@@ -39,6 +40,7 @@ export namespace UpdateExternalSquadCommand {
3940
.optional(),
4041
subscriptionSettings: ExternalSquadSubscriptionSettingsSchema.optional(),
4142
hostOverrides: ExternalSquadHostOverridesSchema.optional(),
43+
responseHeaders: ExternalSquadResponseHeadersSchema.optional(),
4244
});
4345

4446
export type Request = z.infer<typeof RequestSchema>;

libs/contract/models/external-squad.schema.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { z } from 'zod';
33
import {
44
ExternalSquadSubscriptionSettingsSchema,
55
ExternalSquadHostOverridesSchema,
6+
ExternalSquadResponseHeadersSchema,
67
} from './external-squads';
78
import { SUBSCRIPTION_TEMPLATE_TYPE } from '../constants';
89

@@ -22,6 +23,7 @@ export const ExternalSquadSchema = z.object({
2223
),
2324
subscriptionSettings: z.nullable(ExternalSquadSubscriptionSettingsSchema),
2425
hostOverrides: z.nullable(ExternalSquadHostOverridesSchema),
26+
responseHeaders: ExternalSquadResponseHeadersSchema,
2527

2628
createdAt: z
2729
.string()
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import { z } from 'zod';
2+
3+
export const ExternalSquadResponseHeadersSchema = z.nullable(z.record(z.string(), z.string()));
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
export * from './external-squad-host-overrides.schema';
2+
export * from './external-squad-response-headers.schema';
23
export * from './external-squad-subscription-settings.schema';

libs/contract/models/remnawave-settings/oauth2-settings.schema.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ export const Oauth2SettingsSchema = z.object({
2323
return false;
2424
},
2525
{
26-
message: 'Must be a valid fully qualified domain name (FQDN), e.g. "remna.st"',
26+
message: 'Must be a valid fully qualified domain name (FQDN), e.g. "docs.rw"',
2727
},
2828
),
2929
),

libs/contract/models/remnawave-settings/passkey-settings.schema.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ export const PasskeySettingsSchema = z.object({
1717
return false;
1818
},
1919
{
20-
message: 'Must be a valid fully qualified domain name (FQDN), e.g. "remna.st"',
20+
message: 'Must be a valid fully qualified domain name (FQDN), e.g. "docs.rw"',
2121
},
2222
),
2323
),
@@ -35,7 +35,7 @@ export const PasskeySettingsSchema = z.object({
3535
return false;
3636
},
3737
{
38-
message: 'Must be a valid plain URL, e.g. "https://remna.st".',
38+
message: 'Must be a valid plain URL, e.g. "https://docs.rw".',
3939
},
4040
),
4141
),

libs/contract/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@remnawave/backend-contract",
3-
"version": "2.2.32",
3+
"version": "2.2.34",
44
"public": true,
55
"license": "AGPL-3.0-only",
66
"description": "A contract library for Remnawave Backend. It can be used in backend and frontend.",

0 commit comments

Comments
 (0)