feat: V1.0.1 - Setup page, Docker, README

Add password-protected setup page (/api/setup) for DB initialization,
admin creation, and demo data seeding. Dockerize the full stack with
server, client, nginx reverse proxy, and MySQL services. Add project
README with architecture overview, quick start, and VPS deployment guide.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Adriano
2026-02-07 18:00:29 +01:00
parent dd2ebf863a
commit c9d9c0f9dd
12 changed files with 1489 additions and 9 deletions
+65 -9
View File
@@ -1,21 +1,17 @@
version: '3.8'
services:
mysql:
image: mysql:8.0
container_name: tmflow-mysql
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: root_password_change_me
MYSQL_DATABASE: tiemeasureflow
MYSQL_USER: tmflow
MYSQL_PASSWORD: change_me_in_production
ports:
- "3306:3306"
MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD:-root_password_change_me}
MYSQL_DATABASE: ${DB_NAME:-tiemeasureflow}
MYSQL_USER: ${DB_USER:-tmflow}
MYSQL_PASSWORD: ${DB_PASSWORD:-change_me_in_production}
volumes:
- mysql_data:/var/lib/mysql
command: >
--default-authentication-plugin=mysql_native_password
--authentication-policy=mysql_native_password
--character-set-server=utf8mb4
--collation-server=utf8mb4_unicode_ci
healthcheck:
@@ -23,7 +19,67 @@ services:
interval: 10s
timeout: 5s
retries: 5
networks:
- tmflow-net
server:
build:
context: ./server
dockerfile: Dockerfile
container_name: tmflow-server
restart: unless-stopped
env_file:
- .env
environment:
DB_HOST: mysql
UPLOAD_DIR: uploads
volumes:
- upload_data:/app/uploads
depends_on:
mysql:
condition: service_healthy
networks:
- tmflow-net
client:
build:
context: ./client
dockerfile: Dockerfile
container_name: tmflow-client
restart: unless-stopped
env_file:
- .env
environment:
API_SERVER_URL: http://server:8000
depends_on:
- server
networks:
- tmflow-net
nginx:
image: nginx:alpine
container_name: tmflow-nginx
restart: unless-stopped
ports:
- "${NGINX_PORT:-80}:80"
- "${NGINX_SSL_PORT:-443}:443"
volumes:
- ./nginx/nginx.conf:/etc/nginx/conf.d/default.conf:ro
# Uncomment for SSL:
# - ./certbot/conf:/etc/letsencrypt:ro
# - ./certbot/www:/var/www/certbot:ro
depends_on:
- server
- client
networks:
- tmflow-net
volumes:
mysql_data:
driver: local
upload_data:
driver: local
networks:
tmflow-net:
driver: bridge