diff --git a/.env.yaml b/.env.yaml index 678836f..415ca7c 100644 --- a/.env.yaml +++ b/.env.yaml @@ -1,5 +1,10 @@ DOCKER_USER: ENC[AES256_GCM,data:eg6enZA=,iv:Zx73u8oHotkMPbnm/gdT+3V/6hSuJx2/3os9M2ls0k8=,tag:d4Tz73i/CGAURCKXP7d/Yw==,type:str] DOCKER_TOKEN: ENC[AES256_GCM,data:xnGW4Hw3rBmtnB1+wAbej8bXidP6FuhhwFGKgpx4WrPT6ogP,iv:pHWBn/lMjgqmQxlKgUdIRexhm5LBPXkn22D2SJD9xb0=,tag:KvZzTPWLFDDniPupFhq8Yg==,type:str] +KNOT_SERVER_HOSTNAME: ENC[AES256_GCM,data:xyRDW6QThNuXj1mXIL0xPGM3,iv:UlGD2vG/U+23KVsQYpOn4kjsx8a/Y/vDXr2FUvLcyVg=,tag:L/pG9XcbP0sBfQfTUNUAtA==,type:str] +KNOT_SERVER_OWNER: ENC[AES256_GCM,data:wFbHTDCs+lRbOABGnx2l0cdy5B392t21iKZED6oLkwE=,iv:VP0a7l0DWi3k0+bd8PJMiA4V8X6HQABP45T1eO+v42c=,tag:vejsQDOl89/tLOplioTF8g==,type:str] +SPINDLE_SERVER_HOSTNAME: ENC[AES256_GCM,data:H3F78ApdXkkFxfs/fes9CF5q,iv:PqdklQul4wQAakj2oXdPm0L6qPxr/oyvqp2tp8S/CR0=,tag:09RqxAA7WhsEMgXjhBYzJw==,type:str] +SPINDLE_SERVER_OWNER: ENC[AES256_GCM,data:uszll56Z0eBfSpDuvfgMrb3mu1yOZI+WY1wwCBTGVow=,iv:T2nvpm9DJCcGmyxi5CREUA8uhCpHJ98RILtSTmKoDe8=,tag:6Vln4+FQAxyUkI+v9wo8Cw==,type:str] +CADDY_EMAIL: ENC[AES256_GCM,data:7/JJPvOmBAo5DYvLAoJLX4j2ZHJuWBRuPaZ/9VxQ5i8=,iv:SR7QnY7BPdo4XoPgL0PEXpm8jomvTXHz8GnLf5/PWyY=,tag:MOndV6f9DjO/4IbaVjqhpg==,type:str] sops: age: - recipient: age1tw3hs5xhr28dq2dklfptftf0rl322cl9p9pe9yjrkkt4md2gtays772qjt @@ -11,7 +16,7 @@ sops: cjA3NXZOQUhwc01EVmdPdjYxd2FkTVUKSvzexBtylIyQCUPVBqThkL0yah37T9/I RDPl3vsdvcMpN0TKCVwn7P3W+7vciT86wq+6haG1fT1AFqAXCEDaiQ== -----END AGE ENCRYPTED FILE----- - lastmodified: "2025-11-21T11:54:33Z" - mac: ENC[AES256_GCM,data:/VodMi4mmtc/TJn37PkyaQs6SYy6pQmfQbA6wvV2Uk+mWLuMT7rYc5D1a41eQfCzV0MDcp2TadUeX5R49BLOgMcmbW9bNXk8QwESpFiT1bPviV3+NpSooZiXING36NOFP4UxsNYJI1zyqC6p5fX6P83Df097WrJfv07+2HaSh8g=,iv:EkNWQeS+Nwi2SIiDL8AazmSxNFJGvgRxuf0NfazrH0g=,tag:oPH3gOe2l2c6dA1sMHE30g==,type:str] + lastmodified: "2025-11-21T12:59:06Z" + mac: ENC[AES256_GCM,data:rY3LACsar6udfC7FIGCJY87rDC+SY6JbNLLKcGBG5kLaH9gIqwHALwC1+VcfGJ5RyPYQdx7+agk4zhLifdWO7vKpk8DzAm1Xt3eMOJIiLKVUGM+Ny9JnzVsyYYkGYTnbreN1eTGGfOCs7sTfQ1H0yjNOemYTy1bMTzhsYa/cya4=,iv:zP5yJZX8b+5bIRSzpp/WXuM5u9j4aw6Rw5UcYx/1lIA=,tag:9IFLjTw4xFgdM2xg3E7sPQ==,type:str] unencrypted_suffix: _unencrypted version: 3.10.2 diff --git a/compose.yml b/compose.yml new file mode 100644 index 0000000..26b326c --- /dev/null +++ b/compose.yml @@ -0,0 +1,54 @@ +name: tangled +services: + knot: + image: tubbo/knot:latest + restart: always + build: + target: knot + ports: + - 2222:22 + environment: + - KNOT_SERVER_HOSTNAME + - KNOT_SERVER_OWNER + volumes: + - knot_repos:/home/git/repositories + - knot_data:/var/lib/tangled + - knot_keys:/etc/ssh/keys + spindle: + image: tubbo/spindle:latest + restart: always + build: + target: spindle + environment: + - SPINDLE_SERVER_HOSTNAME + - SPINDLE_SERVER_OWNER + volumes: + - spindle_logs:/var/log/spindle + - spindle_data:/var/lib/tangled + caddy: + image: caddy:2 + restart: always + ports: + - 443:443 + - 443:443/udp + - 80:80 + configs: + - source: caddyfile + target: /etc/caddy/Caddyfile + volumes: + - caddy_data:/data +volumes: + knot_repos: + knot_data: + knot_keys: + spindle_logs: + spindle_data: + caddy_data: +configs: + caddyfile: + content: | + { + email ${CADDY_EMAIL} + } + ${KNOT_SERVER_HOSTNAME} { reverse_proxy http://knot:5555 } + ${SPINDLE_SERVER_HOSTNAME} { reverse_proxy http://spindle:6555 } diff --git a/mise.toml b/mise.toml index 0cba20f..727505f 100644 --- a/mise.toml +++ b/mise.toml @@ -19,3 +19,7 @@ run = [ "echo $DOCKER_TOKEN | docker login -u $DOCKER_USER --password-stdin", { task = "build --push" } ] + +[tasks.start] +description = "Run container services" +run = "docker compose up"