summaryrefslogtreecommitdiff
path: root/deploy.sh
diff options
context:
space:
mode:
authorLogan Hunt <loganhunt@simponic.xyz>2023-01-19 14:04:10 -0700
committerGitHub <noreply@github.com>2023-01-19 14:04:10 -0700
commit4666d7871a9e064a3b3033c7c1daa9c3c4972d98 (patch)
tree340ee6ae1dc6410f73bb7862a89c01b7039807de /deploy.sh
parentbdf99b4ee989df1813745e1dfd2983689b09ca85 (diff)
downloadchessh-4666d7871a9e064a3b3033c7c1daa9c3c4972d98.tar.gz
chessh-4666d7871a9e064a3b3033c7c1daa9c3c4972d98.zip
Web Client (#11)
* 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
Diffstat (limited to 'deploy.sh')
-rwxr-xr-xdeploy.sh57
1 files changed, 57 insertions, 0 deletions
diff --git a/deploy.sh b/deploy.sh
new file mode 100755
index 0000000..51d49cf
--- /dev/null
+++ b/deploy.sh
@@ -0,0 +1,57 @@
+#!/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