From 02e0237c4a7b396fde31ee58a8b3dbf59ddde7f3 Mon Sep 17 00:00:00 2001
From: anima
Date: Tue, 4 Jul 2023 13:10:30 +0200
Subject: [PATCH] inital version
---
.env.sample | 21 +++++++++++++++++++
.gitignore | 2 ++
README.md | 52 +++++++++++++++++++++++++++++++++++++++++++++-
docker-compose.yml | 28 +++++++++++++++++++++++++
4 files changed, 102 insertions(+), 1 deletion(-)
create mode 100644 .env.sample
create mode 100644 .gitignore
create mode 100644 docker-compose.yml
diff --git a/.env.sample b/.env.sample
new file mode 100644
index 0000000..8a89a65
--- /dev/null
+++ b/.env.sample
@@ -0,0 +1,21 @@
+BASEDIR=
+CODETAG=
+INTRANET=
+
+PUID=1000
+PGID=1000
+TZ=Europe/Berlin
+
+## optionals
+PROXY_DOMAIN=code.example.com
+DEFAULT_WORKSPACE=/config/workspace
+
+## passwords user hashes or plaintext not both
+PASSWORD=my-super-password
+SUDO_PASSWORD=my-super-sudo-password
+
+# not workint for me ...
+#HASHED_PASSWORD='$$argon2i$$v=19$$m=4096,t=3,p=1$$K96ijeqOQ4P7sW+68/Ldtw$$5rutB8Kst0bk08WW8P5xJ5rh7nFtZw2enUvUPo5o5H4'
+#SUDO_PASSWORD_HASH='$$argon2i$$v=19$$m=4096,t=3,p=1$$jpnaoU60MpfhJ8dHx9mIOA$$W00OHMW7KYrHvFgOmUDLakZhEx8sC/EXpJgP7DagGqM'
+# hashed pw: echo -n "thisismypassword" | npx argon2-cli -e
+# npm need
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..4b366d4
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+files/
+*.env
\ No newline at end of file
diff --git a/README.md b/README.md
index b135ec3..6892c21 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,52 @@
-# compose-vscode
+# Basic VS Code Server docker-compose config
+* can be run on single node setup or in swarm
+## howto
+### single node
+#### start container
+```bash
+docker compose up -d
+```
+
+#### stop container (and remove)
+```bash
+docker compose down
+```
+
+#### view logs
+```bash
+docker compose logs -f
+```
+
+#### reload config
+```bash
+docker compose restart
+```
+
+### swarm
+#### start aka deploy
+```bash
+docker stack deploy -c docker-compose.yml vscode
+```
+
+#### stop container aka service
+```bash
+docker service rm vscode_vscode
+```
+
+#### view logs
+```bash
+docker service logs vscode_vscode -f
+```
+
+#### reload config (no downtime if replica 2 or more)
+```bash
+docker service update vscode_vscode --force
+```
+
+## example caddy config
+```
+code.example.com {
+ reverse_proxy vscode:8443
+}
+```
\ No newline at end of file
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 0000000..4cfb118
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,28 @@
+# https://docs.docker.com/compose/compose-file/compose-file-v3/
+---
+version: "3.9"
+services:
+ vscode:
+ image: lscr.io/linuxserver/code-server:${CODETAG:-latest}
+ container_name: vscode
+ env_file:
+ - .env
+ restart: unless-stopped
+ ports:
+ - 8443:8443
+ deploy:
+ replicas: 1
+ placement:
+ max_replicas_per_node: 1
+ update_config:
+ parallelism: 1
+ delay: 10s
+ volumes:
+ - ${BASEDIR:-.}/files:/config
+ networks:
+ - backend
+
+networks:
+ backend:
+ name: ${INTRANET:-backend}
+ external: true
\ No newline at end of file