#!/bin/sh set -eu env_file=${ENV_FILE:-.env} if [ ! -f "$env_file" ]; then echo "missing $env_file; copy .env.example and configure it first" >&2 exit 1 fi docker compose --env-file "$env_file" up -d gitea docker compose --env-file "$env_file" exec -T -u root gitea \ mkdir -p /data/gitea/templates/base /data/gitea/templates/custom /data/gitea/public/assets/js /data/gitea/public/assets/css /data/gitea/public/assets/img docker compose --env-file "$env_file" cp \ deploy/gitea/templates/home.tmpl \ gitea:/data/gitea/templates/home.tmpl docker compose --env-file "$env_file" cp \ deploy/gitea/templates/base/head.tmpl \ gitea:/data/gitea/templates/base/head.tmpl docker compose --env-file "$env_file" cp \ deploy/gitea/templates/custom/header.tmpl \ gitea:/data/gitea/templates/custom/header.tmpl docker compose --env-file "$env_file" cp \ deploy/gitea/templates/custom/footer.tmpl \ gitea:/data/gitea/templates/custom/footer.tmpl docker compose --env-file "$env_file" cp \ deploy/gitea/public/assets/js/hop-native.js \ gitea:/data/gitea/public/assets/js/hop-native.js docker compose --env-file "$env_file" cp \ deploy/gitea/public/assets/js/hop-native.js \ gitea:/data/gitea/public/assets/js/hop-native-v12.js docker compose --env-file "$env_file" cp \ deploy/gitea/public/assets/js/hop-native.js \ gitea:/data/gitea/public/assets/js/hop-native-v13.js docker compose --env-file "$env_file" cp \ deploy/gitea/public/assets/js/hop-native.js \ gitea:/data/gitea/public/assets/js/hop-native-v14.js docker compose --env-file "$env_file" cp \ deploy/gitea/public/assets/js/hop-native.js \ gitea:/data/gitea/public/assets/js/hop-native-v15.js docker compose --env-file "$env_file" cp \ deploy/gitea/public/assets/js/hop-native.js \ gitea:/data/gitea/public/assets/js/hop-native-v16.js docker compose --env-file "$env_file" cp \ deploy/gitea/public/assets/css/hop-home.css \ gitea:/data/gitea/public/assets/css/hop-home.css docker compose --env-file "$env_file" cp \ deploy/gitea/public/assets/css/hop-prompts.css \ gitea:/data/gitea/public/assets/css/hop-prompts.css docker compose --env-file "$env_file" cp \ deploy/gitea/public/assets/img/hop.svg \ gitea:/data/gitea/public/assets/img/hop.svg docker compose --env-file "$env_file" cp \ deploy/gitea/public/assets/img/hop.svg \ gitea:/data/gitea/public/assets/img/logo.svg docker compose --env-file "$env_file" cp \ deploy/gitea/public/assets/img/logo.png \ gitea:/data/gitea/public/assets/img/logo.png docker compose --env-file "$env_file" cp \ deploy/gitea/public/assets/img/avatar_default.png \ gitea:/data/gitea/public/assets/img/avatar_default.png docker compose --env-file "$env_file" cp \ deploy/gitea/public/assets/img/hop.svg \ gitea:/data/gitea/public/assets/img/favicon.svg docker compose --env-file "$env_file" cp \ deploy/gitea/public/assets/img/favicon.png \ gitea:/data/gitea/public/assets/img/favicon.png docker compose --env-file "$env_file" exec -T -u root gitea \ chown -R git:git /data/gitea/templates /data/gitea/public docker compose --env-file "$env_file" exec -T -u git \ -e GITEA____APP_NAME=Hop gitea \ gitea --config /data/gitea/conf/app.ini config edit-ini --in-place --apply-env docker compose --env-file "$env_file" restart gitea attempt=0 until curl --fail --silent http://localhost:3000/api/healthz >/dev/null; do attempt=$((attempt + 1)) if [ "$attempt" -ge 30 ]; then echo "Gitea did not become healthy" >&2 exit 1 fi sleep 1 done echo "Hop-native Gitea semantics installed at http://localhost:3000"