Monorepo for Aesthetic.Computer aesthetic.computer
4
fork

Configure Feed

Select the types of activity you want to include in your feed.

Improve host access in devcontainer

+80 -23
+36 -13
.devcontainer/config.fish
··· 3208 3208 echo " nc -lu 7777 | while read line; do echo \"\$(date '+%H:%M:%S') \$line\"; done" 3209 3209 end 3210 3210 3211 - # 🖥️ Machine Info / SSH Helpers 3212 - # Read machine configs from vault/machines.json 3213 - 3214 - function ac-host --description "Show current host SSH config from machines.json" 3215 - set -l machines_file "/workspaces/aesthetic-computer/aesthetic-computer-vault/machines.json" 3216 - 3217 - if not test -f $machines_file 3218 - echo "❌ machines.json not found at $machines_file" 3219 - return 1 3220 - end 3211 + # 🖥️ Machine Info / SSH Helpers 3212 + # Read machine configs from vault/machines.json 3213 + 3214 + function __ac_machines_file --description "Resolve machines.json with local cache fallback" 3215 + set -l machines_file "/workspaces/aesthetic-computer/aesthetic-computer-vault/machines.json" 3216 + set -l machines_cache "$HOME/.cache/ac/machines.json" 3217 + 3218 + if test -f $machines_file 3219 + mkdir -p (dirname $machines_cache) 3220 + cp $machines_file $machines_cache 2>/dev/null 3221 + echo $machines_file 3222 + return 0 3223 + end 3224 + 3225 + if test -f $machines_cache 3226 + echo $machines_cache 3227 + return 0 3228 + end 3229 + 3230 + return 1 3231 + end 3232 + 3233 + function ac-host --description "Show current host SSH config from machines.json" 3234 + set -l machines_file (__ac_machines_file) 3235 + 3236 + if test $status -ne 0 -o -z "$machines_file" 3237 + echo "❌ machines.json not found in vault or local cache" 3238 + return 1 3239 + end 3221 3240 3222 3241 set -l machine_key $argv[1] 3223 3242 ··· 3320 3339 ac-host 3321 3340 end 3322 3341 3323 - function ac-host-nmap --description "Run nmap scan on local network via current host" 3324 - set -l machines_file "/workspaces/aesthetic-computer/aesthetic-computer-vault/machines.json" 3325 - set -l search_term $argv[1] 3342 + function ac-host-nmap --description "Run nmap scan on local network via current host" 3343 + set -l machines_file (__ac_machines_file) 3344 + if test $status -ne 0 -o -z "$machines_file" 3345 + echo "❌ machines.json not found in vault or local cache" 3346 + return 1 3347 + end 3348 + set -l search_term $argv[1] 3326 3349 3327 3350 set -l hosts_to_try (jq -r ' 3328 3351 .machines
+13 -10
.devcontainer/devcontainer.json
··· 248 248 // 249 249 // --tmpfs: In-memory /tmp for faster temp file operations 250 250 // 251 - // --ulimit nofile: Raise open file limit for Vite's many watchers 252 - // 253 - // NOTE: Explicit -p port mappings removed - forwardPorts handles this 254 - // and avoids "port already in use" errors on restart 255 - "runArgs": [ 256 - "-v", "/tmp/.X11-unix:/tmp/.X11-unix", 257 - "-q", 258 - "--cap-add=SYS_PTRACE", 259 - "--security-opt=apparmor=unconfined", 260 - "--security-opt", "label:disable", 251 + // --ulimit nofile: Raise open file limit for Vite's many watchers 252 + // --add-host: Force Docker host alias inside the container 253 + // Needed when Docker Desktop doesn't inject host.docker.internal 254 + // 255 + // NOTE: Explicit -p port mappings removed - forwardPorts handles this 256 + // and avoids "port already in use" errors on restart 257 + "runArgs": [ 258 + "-v", "/tmp/.X11-unix:/tmp/.X11-unix", 259 + "-q", 260 + "--add-host=host.docker.internal:host-gateway", 261 + "--cap-add=SYS_PTRACE", 262 + "--security-opt=apparmor=unconfined", 263 + "--security-opt", "label:disable", 261 264 "--name", "aesthetic", 262 265 "--hostname", "aesthetic", 263 266 "--init",
+7
lith/.env.example
··· 1 + # Production monolith env for lith deploys. 2 + # This file is copied to /opt/ac/system/.env on the remote host. 3 + 4 + NODE_ENV=production 5 + CONTEXT=production 6 + PORT=8888 7 + DEPLOY_SECRET=replace-with-production-secret
+24
lith/README.md
··· 1 + # lith 2 + 3 + Secrets and runtime env for the Aesthetic Computer monolith deploy. 4 + 5 + `lith/deploy.fish` expects: 6 + - `aesthetic-computer-vault/lith/.env` 7 + 8 + That file is uploaded to: 9 + - `/opt/ac/system/.env` 10 + 11 + Why `system/.env` on the server: 12 + - [`lith.service`](/workspaces/aesthetic-computer/lith/lith.service) uses `EnvironmentFile=/opt/ac/system/.env` 13 + - The monolith serves the main site and API from the shared `system/` tree 14 + 15 + Minimum required keys: 16 + - `NODE_ENV=production` 17 + - `CONTEXT=production` 18 + - `DEPLOY_SECRET=...` 19 + 20 + Recommended workflow: 21 + 1. Copy `.env.example` to `.env` 22 + 2. Fill in the real production values 23 + 3. Re-run `fish vault-tool.fish status` to confirm `lith/.env` is tracked 24 + 4. Deploy with `fish /workspaces/aesthetic-computer/lith/deploy.fish`