- Remove opencode; install nvm, Claude Code, and pi-coding-agent for aicoder - Add muxplex as web terminal service behind Pangolin (auth: none, port 8088) - Add JuiceFS (Docker container with FUSE) backed by S3 + Redis for Nextcloud storage - Add Nextcloud + MariaDB with JuiceFS mount via depends_on chain - Add autoheal container to restart unhealthy services (covers stale FUSE mounts) - Add SSH key for aicoder user, uv for aicoder, cron cleanup script - Pin images: major for stable projects, minor for Pangolin/Gerbil - Query JuiceFS S3 credentials and cache size during init Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
36 lines
1.1 KiB
Bash
Executable file
36 lines
1.1 KiB
Bash
Executable file
#!/bin/bash
|
|
set -e
|
|
|
|
echo ""
|
|
echo "=== Waiting for Pangolin setup token ==="
|
|
|
|
SETUP_TOKEN=$(ssh "$NEW_USER@pangolin.$HOST" 'timeout 120 bash -c "until docker logs pangolin 2>&1 | grep -oP \"Token: \K.*\"; do sleep 2; done"')
|
|
|
|
echo ""
|
|
echo "==========================================="
|
|
echo " Server setup complete!"
|
|
echo "==========================================="
|
|
echo ""
|
|
echo " SSH: ssh $NEW_USER@pangolin.$HOST"
|
|
echo " SSH (aicoder): ssh aicoder@pangolin.$HOST"
|
|
echo ""
|
|
echo " Pangolin setup token: $SETUP_TOKEN"
|
|
echo ""
|
|
echo " Next steps:"
|
|
echo " 1. Go to https://pangolin.$HOST/auth/initial-setup"
|
|
echo " and enter the setup token above to create your admin account."
|
|
echo ""
|
|
echo " 2. In the Pangolin dashboard, add a local site, then create"
|
|
echo " resources for the following services:"
|
|
echo ""
|
|
echo " Muxplex (web terminal):"
|
|
echo " - Target: host.docker.internal"
|
|
echo " - Port: 8088"
|
|
echo " - Domain: muxplex.$HOST"
|
|
echo ""
|
|
echo " Nextcloud:"
|
|
echo " - Target: nextcloud"
|
|
echo " - Port: 80"
|
|
echo " - Domain: nextcloud.$HOST"
|
|
echo "==========================================="
|