From 7f14c826f2ccf69f725233fd5d7421849c73f40f Mon Sep 17 00:00:00 2001 From: JamBox <8935453+JamesVanBoxtel@users.noreply.github.com> Date: Sun, 15 Feb 2026 20:04:18 -0800 Subject: [PATCH] Initial server-stack setup --- .gitignore | 3 +++ apps/jamesvanboxtel/Dockerfile | 6 ++++++ apps/jamesvanboxtel/package.json | 8 +++++++ apps/jamesvanboxtel/server.js | 22 +++++++++++++++++++ apps/tessavb/Dockerfile | 6 ++++++ apps/tessavb/package.json | 8 +++++++ apps/tessavb/server.js | 22 +++++++++++++++++++ deploy.sh | 4 ++++ docker-compose.yml | 36 ++++++++++++++++++++++++++++++++ hooks.json | 7 +++++++ 10 files changed, 122 insertions(+) create mode 100644 .gitignore create mode 100644 apps/jamesvanboxtel/Dockerfile create mode 100644 apps/jamesvanboxtel/package.json create mode 100644 apps/jamesvanboxtel/server.js create mode 100644 apps/tessavb/Dockerfile create mode 100644 apps/tessavb/package.json create mode 100644 apps/tessavb/server.js create mode 100755 deploy.sh create mode 100644 docker-compose.yml create mode 100644 hooks.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..32179ea --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +caddy_data/ +gitea_data/ +apps/*/data/ diff --git a/apps/jamesvanboxtel/Dockerfile b/apps/jamesvanboxtel/Dockerfile new file mode 100644 index 0000000..e503af9 --- /dev/null +++ b/apps/jamesvanboxtel/Dockerfile @@ -0,0 +1,6 @@ +FROM node:20-alpine +WORKDIR /app +COPY package.json server.js ./ +RUN npm install +EXPOSE 8080 +CMD ["node", "server.js"] diff --git a/apps/jamesvanboxtel/package.json b/apps/jamesvanboxtel/package.json new file mode 100644 index 0000000..c8f3e18 --- /dev/null +++ b/apps/jamesvanboxtel/package.json @@ -0,0 +1,8 @@ +{ + "name": "jamesvanboxtel", + "version": "1.0.0", + "private": true, + "dependencies": { + "express": "^4.21.0" + } +} diff --git a/apps/jamesvanboxtel/server.js b/apps/jamesvanboxtel/server.js new file mode 100644 index 0000000..8d3f43a --- /dev/null +++ b/apps/jamesvanboxtel/server.js @@ -0,0 +1,22 @@ +const express = require("express"); +const app = express(); + +app.get("/", (req, res) => { + res.send(` + + + + + jamesvanboxtel.com + + + +

jamesvanboxtel.com

+ +`); +}); + +app.listen(8080, () => console.log("jamesvanboxtel running on :8080")); diff --git a/apps/tessavb/Dockerfile b/apps/tessavb/Dockerfile new file mode 100644 index 0000000..e503af9 --- /dev/null +++ b/apps/tessavb/Dockerfile @@ -0,0 +1,6 @@ +FROM node:20-alpine +WORKDIR /app +COPY package.json server.js ./ +RUN npm install +EXPOSE 8080 +CMD ["node", "server.js"] diff --git a/apps/tessavb/package.json b/apps/tessavb/package.json new file mode 100644 index 0000000..4aa97d1 --- /dev/null +++ b/apps/tessavb/package.json @@ -0,0 +1,8 @@ +{ + "name": "tessavb", + "version": "1.0.0", + "private": true, + "dependencies": { + "express": "^4.21.0" + } +} diff --git a/apps/tessavb/server.js b/apps/tessavb/server.js new file mode 100644 index 0000000..710f220 --- /dev/null +++ b/apps/tessavb/server.js @@ -0,0 +1,22 @@ +const express = require("express"); +const app = express(); + +app.get("/", (req, res) => { + res.send(` + + + + + tessavb.com + + + +

tessavb.com

+ +`); +}); + +app.listen(8080, () => console.log("tessavb running on :8080")); diff --git a/deploy.sh b/deploy.sh new file mode 100755 index 0000000..92b8131 --- /dev/null +++ b/deploy.sh @@ -0,0 +1,4 @@ +#!/bin/bash +cd /home/$USER/server-stack +git pull origin main +docker compose up -d --build diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..d09416a --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,36 @@ +services: + caddy: + image: lucaslorentz/caddy-docker-proxy:ci-alpine + container_name: caddy + ports: + - "80:80" + - "443:443" + environment: + - CADDY_INGRESS_NETWORKS=server-stack_server-network + networks: + - server-network + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - ./caddy_data:/data + restart: unless-stopped + + gitea: + image: gitea/gitea:latest + container_name: gitea + environment: + - USER_UID=1000 + - USER_GID=1000 + networks: + - server-network + volumes: + - ./gitea_data:/data + - /etc/timezone:/etc/timezone:ro + - /etc/localtime:/etc/localtime:ro + labels: + caddy: git.jamesvanboxtel.com + caddy.reverse_proxy: "{{upstreams 3000}}" + restart: always + +networks: + server-network: + external: false diff --git a/hooks.json b/hooks.json new file mode 100644 index 0000000..ab30e38 --- /dev/null +++ b/hooks.json @@ -0,0 +1,7 @@ +[ + { + "id": "redeploy-apps", + "execute-command": "/home/james/server-stack/deploy.sh", + "command-working-directory": "/home/james/server-stack" + } +]