service-forgejo/README.md
Glenn Y. Rolland ac8a0d96f8
All checks were successful
continuous-integration/drone/push Build is passing
doc: Add badge
2023-02-22 15:45:29 +01:00

67 lines
1.7 KiB
Markdown

[![Build Status](https://cicd.apps.glenux.net/api/badges/glenux-opencontainers/service-forgejo/status.svg)](https://cicd.apps.glenux.net/glenux-opencontainers/service-forgejo)
# Forgejo
## Setup on Dokku
<!--
Define secrets
$(openssl rand -hex 16)
-->
Create APP
dokku apps:create code
Setup Network & Domains
dokku network:create cicd_net
dokku network:set code attach-post-create cicd_net
dokku config:set --no-restart code DOKKU_LETSENCRYPT_EMAIL=username@example.com
Setup Storage
dokku storage:mount /etc/localtime:/etc/localtime:ro
dokku storage:mount /etc/timezone:/etc/timezone:ro
dokku storage:mount /home/data/code.forgejo/data:/data
dokku storage:mount /home/git/.ssh/:/data/git/.ssh
Setup Configuration
dokku config:set code
DATABASE_URL: mysql://xxxxx
REDIS_URL: redis://xxxxx
USER_GID: 1002
USER_UID: 1002
Deploy
git remote add dokku dokku@example.com:code
git push
## Create Wrapper
Add git user on host
adduser --disabled-password git
adduser git docker
Create ssh key for git user
ssh-keygen -t rsa -f /home/git/.ssh/id_rsa -C "Forgejo Host Key"
chmod 600 /home/git/.ssh/id_rsa
Create `/usr/local/bin/forgejo` with the following content
FORGEJO_CID=code.web.1
# FORGEJO_IP="$(docker inspect "$FORGEJO_CID" -f '{{ (index (index .NetworkSettings.Ports "80/tcp") 0).HostPort }}')"
FORGEJO_IP="$(docker inspect "$FORGEJO_CID" -f '{{ .NetworkSettings.IPAddress }}' 2>/dev/null )"
ssh -T -p 22 -o StrictHostKeyChecking=no git@$FORGEJO_IP "SSH_ORIGINAL_COMMAND=\"$SSH_ORIGINAL_COMMAND\" $0 $@"
Success.