mirror of
https://github.com/brendan-ch/project-inter-server.git
synced 2026-04-17 07:50:31 +00:00
Merge pull request #102 from brendan-ch/chore/setup-self-hosted
chore/setup-self-hosted
This commit is contained in:
@@ -21,3 +21,4 @@ RATE_LIMIT_DELAY_MULTIPLIER_MS=
|
|||||||
|
|
||||||
# Redis connection
|
# Redis connection
|
||||||
REDIS_URL=
|
REDIS_URL=
|
||||||
|
REDIS_USE_TLS=
|
||||||
|
|||||||
4
Caddyfile
Normal file
4
Caddyfile
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
interchange-api.bchen.dev {
|
||||||
|
reverse_proxy app:4000
|
||||||
|
}
|
||||||
|
|
||||||
52
docker-compose.prod.yml
Normal file
52
docker-compose.prod.yml
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
# self hosted server setup using Caddy
|
||||||
|
|
||||||
|
x-common-environment: &common-server-environment
|
||||||
|
APNS_IS_PRODUCTION: ${APNS_IS_PRODUCTION}
|
||||||
|
APNS_BUNDLE_ID: ${APNS_BUNDLE_ID}
|
||||||
|
APNS_TEAM_ID: ${APNS_TEAM_ID}
|
||||||
|
APNS_KEY_ID: ${APNS_KEY_ID}
|
||||||
|
APNS_PRIVATE_KEY: ${APNS_PRIVATE_KEY}
|
||||||
|
PARKING_LOGGING_INTERVAL_MS: ${PARKING_LOGGING_INTERVAL_MS}
|
||||||
|
REDIS_URL: redis://redis:6379
|
||||||
|
REDIS_USE_TLS: 0
|
||||||
|
RATE_LIMITS_DISABLED: ${RATE_LIMITS_DISABLED}
|
||||||
|
RATE_LIMIT_WINDOW_MS: ${RATE_LIMIT_WINDOW_MS}
|
||||||
|
RATE_LIMIT_DELAY_AFTER_REQUESTS: ${RATE_LIMIT_DELAY_AFTER_REQUESTS}
|
||||||
|
RATE_LIMIT_DELAY_MULTIPLIER_MS: ${RATE_LIMIT_DELAY_MULTIPLIER_MS}
|
||||||
|
|
||||||
|
services:
|
||||||
|
app:
|
||||||
|
build: .
|
||||||
|
command: npm run start
|
||||||
|
restart: unless-stopped
|
||||||
|
depends_on:
|
||||||
|
- redis
|
||||||
|
environment:
|
||||||
|
<<: *common-server-environment
|
||||||
|
NODE_ENV: production
|
||||||
|
|
||||||
|
redis:
|
||||||
|
image: redis/redis-stack:7.2.0-v17
|
||||||
|
container_name: redis-timeseries
|
||||||
|
restart: unless-stopped
|
||||||
|
volumes:
|
||||||
|
- redis_data:/data
|
||||||
|
- ./redis-stack.conf:/redis-stack.conf
|
||||||
|
command: redis-stack-server /redis-stack.conf
|
||||||
|
|
||||||
|
caddy:
|
||||||
|
image: caddy:2-alpine
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- "80:80"
|
||||||
|
- "443:443"
|
||||||
|
- "443:443/udp"
|
||||||
|
volumes:
|
||||||
|
- ./Caddyfile:/etc/caddy/Caddyfile
|
||||||
|
- caddy_data:/data
|
||||||
|
- caddy_config:/config
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
redis_data:
|
||||||
|
caddy_data:
|
||||||
|
caddy_config:
|
||||||
@@ -12,6 +12,7 @@ x-common-environment: &common-server-environment
|
|||||||
APNS_PRIVATE_KEY: ${APNS_PRIVATE_KEY}
|
APNS_PRIVATE_KEY: ${APNS_PRIVATE_KEY}
|
||||||
PARKING_LOGGING_INTERVAL_MS: ${PARKING_LOGGING_INTERVAL_MS}
|
PARKING_LOGGING_INTERVAL_MS: ${PARKING_LOGGING_INTERVAL_MS}
|
||||||
REDIS_URL: redis://redis:6379
|
REDIS_URL: redis://redis:6379
|
||||||
|
REDIS_USE_TLS: 0
|
||||||
RATE_LIMITS_DISABLED: ${RATE_LIMITS_DISABLED}
|
RATE_LIMITS_DISABLED: ${RATE_LIMITS_DISABLED}
|
||||||
RATE_LIMIT_WINDOW_MS: ${RATE_LIMIT_WINDOW_MS}
|
RATE_LIMIT_WINDOW_MS: ${RATE_LIMIT_WINDOW_MS}
|
||||||
RATE_LIMIT_DELAY_AFTER_REQUESTS: ${RATE_LIMIT_DELAY_AFTER_REQUESTS}
|
RATE_LIMIT_DELAY_AFTER_REQUESTS: ${RATE_LIMIT_DELAY_AFTER_REQUESTS}
|
||||||
|
|||||||
@@ -5,10 +5,11 @@ export default function createRedisClientForRepository() {
|
|||||||
const client = createClient({
|
const client = createClient({
|
||||||
url: process.env.REDIS_URL,
|
url: process.env.REDIS_URL,
|
||||||
socket: {
|
socket: {
|
||||||
tls: process.env.NODE_ENV === 'production',
|
tls: process.env.REDIS_USE_TLS === "1",
|
||||||
rejectUnauthorized: false,
|
rejectUnauthorized: false,
|
||||||
reconnectStrategy: REDIS_RECONNECT_INTERVAL,
|
reconnectStrategy: REDIS_RECONNECT_INTERVAL,
|
||||||
},
|
} as object,
|
||||||
});
|
});
|
||||||
return client as RedisClientType;
|
return client as RedisClientType;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user