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