mirror of
https://github.com/furyhawk/cloudy.git
synced 2026-05-23 16:36:00 +00:00
Update environment variables and configurations
This commit is contained in:
@@ -1,12 +1,19 @@
|
|||||||
# Environment variables for docker-compose.yml
|
# Environment variables for docker-compose.yml
|
||||||
|
|
||||||
LOG_LEVEL="DEBUG"
|
LOG_LEVEL="DEBUG"
|
||||||
NETWORK=web
|
NETWORK="web"
|
||||||
## dashboard configs
|
## dashboard configs
|
||||||
HOST="furyhawk.lol"
|
HOST="furyhawk.lol"
|
||||||
# subdomain for dashboard.
|
# subdomain for dashboard.
|
||||||
DASHBOARD_HOST="dashboard.furyhawk.lol"
|
DASHBOARD_HOST="dashboard.furyhawk.lol"
|
||||||
|
|
||||||
|
# log file path on host machine
|
||||||
|
LOG_PATH=./logs
|
||||||
|
|
||||||
|
## TLS configs
|
||||||
|
CERT_PATH=./certs
|
||||||
|
ACME_PATH=./acme.json
|
||||||
|
|
||||||
# The following are the environment variables for the streamlit app
|
# The following are the environment variables for the streamlit app
|
||||||
FIN_LOCATION="/fin"
|
FIN_LOCATION="/fin"
|
||||||
STREAMLIT_FIN_SERVER_PORT="8501"
|
STREAMLIT_FIN_SERVER_PORT="8501"
|
||||||
@@ -14,8 +21,8 @@ BAI_LOCATION="/bai"
|
|||||||
STREAMLIT_BAI_SERVER_PORT="8502"
|
STREAMLIT_BAI_SERVER_PORT="8502"
|
||||||
|
|
||||||
# user/pass
|
# user/pass
|
||||||
DASHBOARD_USER=admin
|
DASHBOARD_USER="test"
|
||||||
DASHBOARD_PASSWORD=pass
|
DASHBOARD_PASSWORD="$apr1$2E4PEW8M$/wEgFNKX71h.YYMywV7WZ/"
|
||||||
|
|
||||||
OSRM_ALGORITHM="mld"
|
OSRM_ALGORITHM="mld"
|
||||||
OSRM_THREADS=2
|
OSRM_THREADS=2
|
||||||
|
|||||||
@@ -3,21 +3,21 @@ This simple project uses Traefik as a reverse proxy to a Streamlit application a
|
|||||||
|
|
||||||
## Requirements
|
## Requirements
|
||||||
- Docker Compose
|
- Docker Compose
|
||||||
- Python 3.9
|
- Python 3.11
|
||||||
|
|
||||||
## Local Deployment
|
## Local Deployment
|
||||||
#### Python:
|
#### Python:
|
||||||
1. `cd src`
|
1. `cd src`
|
||||||
2. `pip install -r requirements.txt`
|
2. `pip install -r requirements.txt`
|
||||||
3. `streamlit run app.py`
|
3. `streamlit run app.py`
|
||||||
|
|
||||||
#### Docker:
|
#### Docker:
|
||||||
1. `sudo docker-compose -f local.yml up --build`
|
1. `docker compose -f local.yml up --build`
|
||||||
|
|
||||||
## Production Deployment
|
## Production Deployment
|
||||||
1. In `compose/traefik/traefik.yml`, change `example@test.com` to your email.
|
1. In `compose/traefik/traefik.yml`, change `example@test.com` to your email.
|
||||||
2. In `compose/traefik/traefik.yml`, change `example.com` to your domain.
|
2. In `compose/traefik/traefik.yml`, change `example.com` to your domain.
|
||||||
3. `docker compose -f production.yml up --build -d --remove-orphans`
|
3. `docker compose -f production.yml up --build -d --remove-orphans`
|
||||||
|
|
||||||
### Notes:
|
### Notes:
|
||||||
Feel free to make a PR or get in contact with me on Discord at yoyojoe#5510.
|
|
||||||
|
|||||||
@@ -38,12 +38,18 @@ http:
|
|||||||
routers:
|
routers:
|
||||||
dashboard:
|
dashboard:
|
||||||
rule: "Host(`dashboard.furyhawk.lol`) && (PathPrefix(`/api`) || PathPrefix(`/dashboard`))"
|
rule: "Host(`dashboard.furyhawk.lol`) && (PathPrefix(`/api`) || PathPrefix(`/dashboard`))"
|
||||||
|
entryPoints:
|
||||||
|
- web-secure
|
||||||
service: api@internal
|
service: api@internal
|
||||||
middlewares:
|
middlewares:
|
||||||
- auth
|
- auth
|
||||||
tls:
|
tls:
|
||||||
# https://docs.traefik.io/master/routing/routers/#certresolver
|
# https://docs.traefik.io/master/routing/routers/#certresolver
|
||||||
certResolver: letsencrypt
|
certResolver: letsencrypt
|
||||||
|
domains:
|
||||||
|
- main: "furyhawk.lol"
|
||||||
|
sans:
|
||||||
|
- "*.furyhawk.lol"
|
||||||
|
|
||||||
web-secure-router:
|
web-secure-router:
|
||||||
rule: "Host(`furyhawk.lol`, `www.furyhawk.lol`, `bai.furyhawk.lol`) || PathPrefix(`/bai`)"
|
rule: "Host(`furyhawk.lol`, `www.furyhawk.lol`, `bai.furyhawk.lol`) || PathPrefix(`/bai`)"
|
||||||
@@ -56,6 +62,10 @@ http:
|
|||||||
tls:
|
tls:
|
||||||
# https://docs.traefik.io/master/routing/routers/#certresolver
|
# https://docs.traefik.io/master/routing/routers/#certresolver
|
||||||
certResolver: letsencrypt
|
certResolver: letsencrypt
|
||||||
|
domains:
|
||||||
|
- main: "furyhawk.lol"
|
||||||
|
sans:
|
||||||
|
- "*.furyhawk.lol"
|
||||||
fin-router:
|
fin-router:
|
||||||
rule: "Host(`fin.furyhawk.lol`)"
|
rule: "Host(`fin.furyhawk.lol`)"
|
||||||
entryPoints:
|
entryPoints:
|
||||||
@@ -67,6 +77,10 @@ http:
|
|||||||
tls:
|
tls:
|
||||||
# https://docs.traefik.io/master/routing/routers/#certresolver
|
# https://docs.traefik.io/master/routing/routers/#certresolver
|
||||||
certResolver: letsencrypt
|
certResolver: letsencrypt
|
||||||
|
domains:
|
||||||
|
- main: "furyhawk.lol"
|
||||||
|
sans:
|
||||||
|
- "*.furyhawk.lol"
|
||||||
blog-router:
|
blog-router:
|
||||||
rule: "Host(`blog.furyhawk.lol`)"
|
rule: "Host(`blog.furyhawk.lol`)"
|
||||||
entryPoints:
|
entryPoints:
|
||||||
@@ -91,12 +105,16 @@ http:
|
|||||||
tls:
|
tls:
|
||||||
# https://docs.traefik.io/master/routing/routers/#certresolver
|
# https://docs.traefik.io/master/routing/routers/#certresolver
|
||||||
certResolver: letsencrypt
|
certResolver: letsencrypt
|
||||||
|
domains:
|
||||||
|
- main: "furyhawk.lol"
|
||||||
|
sans:
|
||||||
|
- "*.furyhawk.lol"
|
||||||
|
|
||||||
middlewares:
|
middlewares:
|
||||||
auth:
|
auth:
|
||||||
basicAuth:
|
basicAuth:
|
||||||
users:
|
users:
|
||||||
- "test:$apr1$2E4PEW8M$/wEgFNKX71h.YYMywV7WZ/"
|
- ${DASHBOARD_USER}:${DASHBOARD_PASSWORD}
|
||||||
csrf:
|
csrf:
|
||||||
# https://doc.traefik.io/traefik/middlewares/http/headers/#hostsproxyheaders
|
# https://doc.traefik.io/traefik/middlewares/http/headers/#hostsproxyheaders
|
||||||
# https://docs.djangoproject.com/en/dev/ref/csrf/#ajax
|
# https://docs.djangoproject.com/en/dev/ref/csrf/#ajax
|
||||||
@@ -141,3 +159,7 @@ providers:
|
|||||||
file:
|
file:
|
||||||
filename: /etc/traefik/traefik.yml
|
filename: /etc/traefik/traefik.yml
|
||||||
watch: true
|
watch: true
|
||||||
|
docker:
|
||||||
|
network: {{env "NETWORK"}}
|
||||||
|
exposedByDefault: true
|
||||||
|
endpoint: "unix:///var/run/docker.sock"
|
||||||
|
|||||||
+27
-8
@@ -2,6 +2,8 @@ version: '3.7'
|
|||||||
|
|
||||||
x-environment: &default-environment
|
x-environment: &default-environment
|
||||||
LOG_LEVEL: "DEBUG"
|
LOG_LEVEL: "DEBUG"
|
||||||
|
LOG_PATH: "./logs"
|
||||||
|
ACME_PATH: "./acme.json"
|
||||||
DASHBOARD_USER: ${DASHBOARD_USER}
|
DASHBOARD_USER: ${DASHBOARD_USER}
|
||||||
DASHBOARD_PASSWORD: ${DASHBOARD_PASSWORD}
|
DASHBOARD_PASSWORD: ${DASHBOARD_PASSWORD}
|
||||||
FIN_LOCATION: "/fin"
|
FIN_LOCATION: "/fin"
|
||||||
@@ -9,9 +11,6 @@ x-environment: &default-environment
|
|||||||
BAI_LOCATION: "/bai"
|
BAI_LOCATION: "/bai"
|
||||||
STREAMLIT_BAI_SERVER_PORT: "8502"
|
STREAMLIT_BAI_SERVER_PORT: "8502"
|
||||||
|
|
||||||
volumes:
|
|
||||||
production_traefik: {}
|
|
||||||
|
|
||||||
services:
|
services:
|
||||||
osrm-backend:
|
osrm-backend:
|
||||||
environment:
|
environment:
|
||||||
@@ -28,7 +27,10 @@ services:
|
|||||||
container_name: osrm_backend
|
container_name: osrm_backend
|
||||||
restart: always
|
restart: always
|
||||||
ports:
|
ports:
|
||||||
- ${OSRM_PORT}:${OSRM_PORT}
|
- ${OSRM_PORT:-5000}:${OSRM_PORT:-5000}
|
||||||
|
networks:
|
||||||
|
- net
|
||||||
|
- default
|
||||||
|
|
||||||
streamlit-bai:
|
streamlit-bai:
|
||||||
environment:
|
environment:
|
||||||
@@ -39,6 +41,9 @@ services:
|
|||||||
expose:
|
expose:
|
||||||
- ${STREAMLIT_BAI_SERVER_PORT}
|
- ${STREAMLIT_BAI_SERVER_PORT}
|
||||||
command: streamlit run --server.port=$STREAMLIT_BAI_SERVER_PORT --server.address=0.0.0.0 --server.baseUrlPath=$BAI_LOCATION src/app.py
|
command: streamlit run --server.port=$STREAMLIT_BAI_SERVER_PORT --server.address=0.0.0.0 --server.baseUrlPath=$BAI_LOCATION src/app.py
|
||||||
|
networks:
|
||||||
|
- net
|
||||||
|
- default
|
||||||
|
|
||||||
streamlit-fin:
|
streamlit-fin:
|
||||||
environment:
|
environment:
|
||||||
@@ -51,6 +56,9 @@ services:
|
|||||||
restart: always
|
restart: always
|
||||||
expose:
|
expose:
|
||||||
- ${STREAMLIT_FIN_SERVER_PORT}
|
- ${STREAMLIT_FIN_SERVER_PORT}
|
||||||
|
networks:
|
||||||
|
- net
|
||||||
|
- default
|
||||||
command: streamlit run --server.port=$STREAMLIT_FIN_SERVER_PORT --server.address=0.0.0.0 --server.baseUrlPath=$FIN_LOCATION src/app.py
|
command: streamlit run --server.port=$STREAMLIT_FIN_SERVER_PORT --server.address=0.0.0.0 --server.baseUrlPath=$FIN_LOCATION src/app.py
|
||||||
|
|
||||||
traefik:
|
traefik:
|
||||||
@@ -60,9 +68,20 @@ services:
|
|||||||
context: .
|
context: .
|
||||||
dockerfile: ./compose/traefik/Dockerfile
|
dockerfile: ./compose/traefik/Dockerfile
|
||||||
image: traefik_production
|
image: traefik_production
|
||||||
|
container_name: traefik
|
||||||
|
retart: always
|
||||||
volumes:
|
volumes:
|
||||||
- production_traefik:/etc/traefik/acme:z
|
- "${LOG_PATH:-./logs}:/logs"
|
||||||
- /var/run/docker.sock:/var/run/docker.sock:ro
|
- "${ACME_PATH:-./acme.json}:/etc/traefik/acme/acme.json"
|
||||||
|
- "/var/run/docker.sock:/var/run/docker.sock:ro"
|
||||||
|
networks:
|
||||||
|
- net
|
||||||
|
- default
|
||||||
ports:
|
ports:
|
||||||
- "0.0.0.0:80:80"
|
- "80:80"
|
||||||
- "0.0.0.0:443:443"
|
- "443:443"
|
||||||
|
|
||||||
|
networks:
|
||||||
|
net:
|
||||||
|
external: true
|
||||||
|
name: ${NETWORK:-web}
|
||||||
Reference in New Issue
Block a user