2.6 KiB
2.6 KiB
Troubleshooting
1) Containers fail to start
- Check compose status:
docker compose --env-file .env -f docker-compose.yml ps
- If TLS profile enabled:
docker compose --env-file .env -f docker-compose.yml --profile tls ps
- Inspect logs:
docker compose --env-file .env -f docker-compose.yml logs giteadocker compose --env-file .env -f docker-compose.yml logs postgresdocker compose --env-file .env -f docker-compose.yml --profile tls logs caddy
2) Gitea health endpoint fails
- Local probe:
curl -v http://localhost:3000/api/healthz
- If port changed, use your
GITEA_HTTP_PORT. - Confirm mapping:
docker compose --env-file .env -f docker-compose.yml ps
3) Database connection errors
- Confirm PostgreSQL health:
docker compose --env-file .env -f docker-compose.yml ps postgres
- Re-check
.envvalues:POSTGRES_USER,POSTGRES_PASSWORD,POSTGRES_DB
- Look for auth failures in postgres logs.
4) Permission issues under /media/rbhat/DATA/gitea
- Ensure current user can read/write this path.
- If needed:
sudo chown -R rbhat:rbhat /media/rbhat/DATA/giteasudo chmod -R u+rwX /media/rbhat/DATA/gitea
5) Firewall blocks access
- Check active rules:
sudo ufw status
- Expected allows:
<GITEA_HTTP_PORT>/tcp<GITEA_SSH_PORT>/tcp80/tcpand443/tcpif TLS profile is internet-exposed
6) TLS cert not issuing
- Ensure
git.bhatfamily.inresolves publicly to your home WAN IP. - Ensure inbound TCP 80 and 443 are forwarded to this host.
- Ensure
TLS_EMAILis set in.env. - Verify Caddy logs for ACME failures:
docker compose --env-file .env -f docker-compose.yml --profile tls logs caddy
7) Port conflicts on 80/443
- Check listeners:
ss -tulpen | grep -E '(:80\s|:443\s)'
- Stop conflicting services or disable TLS profile until resolved.
8) DNS resolves but service unreachable
- Verify router forwarding targets correct LAN IP.
- Verify host listening:
ss -tulpen | grep -E '3000|2222|80|443'
- Test from external network (mobile hotspot) to avoid NAT loopback confusion.
9) TLS tests fail during propagation
- Strict mode (default) fails until DNS/routing/cert trust is ready:
./scripts/test.sh --with-tls
- Temporary non-blocking mode:
./scripts/test.sh --with-tls --allow-pending-external
10) Reset stack while keeping data
./scripts/uninstall.sh --with-tls./scripts/install.sh --with-tls --open-public-web
11) Full clean rebuild
./scripts/uninstall.sh --with-tls --purge-data --purge-images --close-public-web --yes- Re-run install