Compare commits
52 Commits
v2.1
...
c79f81ec7d
| Author | SHA1 | Date | |
|---|---|---|---|
| c79f81ec7d | |||
| 9af4ddaf18 | |||
| 9dd9ccebdd | |||
| 92605d85c2 | |||
| 59a1ae51fa | |||
| 80a3d4d464 | |||
| 9efb93c37c | |||
| cf638dc42d | |||
| 65092b57d9 | |||
| 7045317fc6 | |||
| 0f75f55ac4 | |||
| 2d2dc52012 | |||
| 566437bd71 | |||
| 266ee1af80 | |||
| 43f8e00968 | |||
| 5c43b817a7 | |||
| 0953847f24 | |||
| 9e7fc530b5 | |||
| 18777e5f7c | |||
| b55129dfff | |||
| 26856ee1df | |||
| dd1d8d8d6b | |||
| cf2df0aaac | |||
| 1199d6468f | |||
| 7cd958c31e | |||
| f89cf84a38 | |||
| e3fc1d8659 | |||
| 060f8d01c6 | |||
| 667609d70c | |||
| b05f19acd9 | |||
| 2aa9a968f5 | |||
| e42a2f510a | |||
| d2b22fc71f | |||
| 471c0c7a49 | |||
| 75ff65e76b | |||
| 7cf1245ef6 | |||
| 2adbfa75a5 | |||
| 216a1cb1d4 | |||
| 7fc98d6c9f | |||
| e346cf9445 | |||
| c030b6dbe6 | |||
| 6f26b9bbc3 | |||
| a34a70572f | |||
| 4b3c8a2424 | |||
| 568b3bf495 | |||
| 5653d32857 | |||
| 7cf5b8df48 | |||
| 65c5fc0f8f | |||
| b626a67907 | |||
| 6643a176a6 | |||
| 89803754a7 | |||
| 5052b3e83a |
@@ -20,7 +20,7 @@ Ticket intake and validation app with a React frontend and an Express + MySQL ba
|
|||||||
|
|
||||||
### Production Tech Stack
|
### Production Tech Stack
|
||||||
|
|
||||||
> **Note**: For production, check the [prod branch](prod) which contains an VPN git submodule of wg-easy to run the app securely on a private network. It also contains a dnsmasq container to resolve the backend service name from the frontend container. The main branch is meant for local development and testing, so it doesn't include those components to keep things simple.
|
> **Note** For production, check the [prod branch](prod) which contains an VPN git submodule of wg-easy to run the app securely on a private network. It also contains a dnsmasq container to resolve the backend service name from the frontend container. The main branch is meant for local development and testing, so it doesn't include those components to keep things simple.
|
||||||
|
|
||||||

|

|
||||||

|

|
||||||
|
|||||||
+73
-13
@@ -1,16 +1,19 @@
|
|||||||
services:
|
services:
|
||||||
# frontend:
|
frontend:
|
||||||
# container_name: ca-lose-frontend
|
container_name: ca-lose-frontend
|
||||||
# build: ./frontend
|
hostname: lose-verkaufen
|
||||||
# ports:
|
build: ./frontend
|
||||||
# - "8002:80"
|
depends_on:
|
||||||
# restart: unless-stopped
|
- backend
|
||||||
|
networks:
|
||||||
|
ca-lose-internal:
|
||||||
|
ipv4_address: 172.25.0.2
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
backend:
|
backend:
|
||||||
container_name: ca-lose-backend
|
container_name: ca-lose-backend
|
||||||
|
hostname: backend
|
||||||
build: ./backend
|
build: ./backend
|
||||||
ports:
|
|
||||||
- "8004:8004"
|
|
||||||
environment:
|
environment:
|
||||||
NODE_ENV: production
|
NODE_ENV: production
|
||||||
DB_HOST: ca-lose-mysql
|
DB_HOST: ca-lose-mysql
|
||||||
@@ -19,21 +22,78 @@ services:
|
|||||||
DB_NAME: ca_lose
|
DB_NAME: ca_lose
|
||||||
depends_on:
|
depends_on:
|
||||||
- database
|
- database
|
||||||
|
networks:
|
||||||
|
ca-lose-internal:
|
||||||
|
ipv4_address: 172.25.0.3
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|
||||||
database:
|
database:
|
||||||
container_name: ca-lose-mysql
|
container_name: ca-lose-mysql
|
||||||
|
hostname: database
|
||||||
image: mysql:8.0
|
image: mysql:8.0
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
ports:
|
|
||||||
- "3311:3306"
|
|
||||||
environment:
|
environment:
|
||||||
MYSQL_ROOT_PASSWORD: ${DB_PASSWORD}
|
MYSQL_ROOT_PASSWORD: ${DB_PASSWORD}
|
||||||
MYSQL_DATABASE: ca_lose
|
MYSQL_DATABASE: ca_lose
|
||||||
TZ: Europe/Berlin
|
TZ: Europe/Berlin
|
||||||
volumes:
|
volumes:
|
||||||
- ca-lose_mysql:/var/lib/mysql
|
- ../docker/volumes/ca-lose_mysql:/var/lib/mysql
|
||||||
- ./mysql-timezone.cnf:/etc/mysql/conf.d/timezone.cnf:ro
|
- ./mysql-timezone.cnf:/etc/mysql/conf.d/timezone.cnf:ro
|
||||||
|
networks:
|
||||||
|
ca-lose-internal:
|
||||||
|
ipv4_address: 172.25.0.4
|
||||||
|
|
||||||
volumes:
|
# DNS Server for hostname resolution within the Docker network
|
||||||
ca-lose_mysql:
|
dnsmasq:
|
||||||
|
container_name: ca-lose-dns
|
||||||
|
image: andyshinn/dnsmasq:latest
|
||||||
|
restart: unless-stopped
|
||||||
|
cap_add:
|
||||||
|
- NET_ADMIN
|
||||||
|
command: >
|
||||||
|
--no-daemon
|
||||||
|
--log-queries
|
||||||
|
--address=/lose-verkaufen/172.25.0.2
|
||||||
|
--address=/frontend/172.25.0.2
|
||||||
|
--address=/backend/172.25.0.3
|
||||||
|
--address=/database/172.25.0.4
|
||||||
|
--address=/wireguard/172.25.0.6
|
||||||
|
networks:
|
||||||
|
ca-lose-internal:
|
||||||
|
ipv4_address: 172.25.0.5
|
||||||
|
|
||||||
|
# WireGuard VPN server for secure remote access to the Docker network
|
||||||
|
wireguard:
|
||||||
|
build: ./wg-easy-ca-lose
|
||||||
|
container_name: ca-lose-wireguard
|
||||||
|
cap_add:
|
||||||
|
- NET_ADMIN
|
||||||
|
- SYS_MODULE
|
||||||
|
environment:
|
||||||
|
WG_HOST: dus3.the1s.de
|
||||||
|
INSECURE: "true"
|
||||||
|
HOST: "172.25.0.6"
|
||||||
|
PORT: "80"
|
||||||
|
volumes:
|
||||||
|
- ../docker/volumes/ca-lose-wireguard-v15:/etc/wireguard
|
||||||
|
- /lib/modules:/lib/modules:ro
|
||||||
|
ports:
|
||||||
|
- "51830:51830/udp"
|
||||||
|
# - "51831:51821/tcp" Public Web-UI Port
|
||||||
|
sysctls:
|
||||||
|
- net.ipv4.ip_forward=1
|
||||||
|
- net.ipv4.conf.all.src_valid_mark=1
|
||||||
|
restart: unless-stopped
|
||||||
|
depends_on:
|
||||||
|
- dnsmasq
|
||||||
|
networks:
|
||||||
|
ca-lose-internal:
|
||||||
|
ipv4_address: 172.25.0.6
|
||||||
|
|
||||||
|
networks:
|
||||||
|
ca-lose-internal:
|
||||||
|
driver: bridge
|
||||||
|
ipam:
|
||||||
|
config:
|
||||||
|
- subnet: 172.25.0.0/24
|
||||||
|
gateway: 172.25.0.1
|
||||||
|
|||||||
Reference in New Issue
Block a user