4666d7871a
* Github Oauth * A simple frontend * Add middleware proxy on dev * Forward proxy and rewrite path, add oauth to frontend, increase jwt expiry time to 12 hours * Some simple style changes * Add keys as user * Checkpoint - auth is broken * Fix auth and use player model, unrelated to this pr: flip board if dark * Close player session when password or key deleted or put * Add build script - this branch is quickly becoming cringe * Docker v2 - add migration and scripts, fix local storage and index that caused build issues * Ignore keys, proxy api correctly nginx * Finally nginx is resolved jesus christ * Remove max screen dimension limits cuz cringe * Cursor highlight * Add password form, some minor frontend changes as well * Remove cringe on home page * Move to 127.0.0.1 loopback in env * Add github id in player structs for tests
58 lines
1.4 KiB
Bash
Executable File
58 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
datestamp=$(date +%Y%m%d-%H%M)
|
|
env_file=.env.prod
|
|
project_name=chessh
|
|
port=8080
|
|
ssh_port=34355
|
|
host=0.0.0.0
|
|
|
|
container_names=("chessh-database" "chessh-server" "chessh-frontend")
|
|
|
|
for name in ${container_names[@]}; do
|
|
docker stop $name
|
|
docker rm $name
|
|
done
|
|
|
|
# Create network for chessh
|
|
docker network ls | grep -q $project_name || docker network create --driver bridge $project_name
|
|
|
|
# Start postgres container
|
|
# Firstly create pg volume if it does not exist
|
|
docker volume ls | grep -q $project_name-pgdata || docker volume create $project_name-pgdata
|
|
|
|
# Then run the pg container
|
|
docker run \
|
|
-d \
|
|
--restart unless-stopped \
|
|
--env-file $env_file \
|
|
--network $project_name \
|
|
--name $project_name-database \
|
|
--net-alias database \
|
|
--volume $project_name-pgdata:/var/lib/postgresql/data/ \
|
|
postgres
|
|
|
|
# Start backend container
|
|
# Check if running; if so, stop, and rename
|
|
docker run \
|
|
-d \
|
|
--restart unless-stopped \
|
|
--env-file $env_file \
|
|
--network $project_name \
|
|
--name $project_name-server \
|
|
--publish "${host}:${ssh_port}:${ssh_port}/tcp" \
|
|
--net-alias server \
|
|
chessh/server
|
|
|
|
# Start frontend container
|
|
# Check if running; if so, stop, and rename
|
|
docker run \
|
|
-d \
|
|
--restart unless-stopped \
|
|
--env-file $env_file \
|
|
--network $project_name \
|
|
--name $project_name-frontend \
|
|
--publish "${host}:${port}:80/tcp" \
|
|
--net-alias frontend \
|
|
chessh/frontend
|