parent
9d9087e4b0
commit
b328453644
@ -0,0 +1,26 @@ |
|||||||
|
version: "3" |
||||||
|
|
||||||
|
networks: |
||||||
|
gitea: |
||||||
|
external: false |
||||||
|
|
||||||
|
services: |
||||||
|
gitea: |
||||||
|
image: gitea/gitea:1.16.6 |
||||||
|
env_file: |
||||||
|
- ../env.production |
||||||
|
- env.production |
||||||
|
- env.secrets |
||||||
|
environment: |
||||||
|
- USER_UID=1000 |
||||||
|
- USER_GID=1000 |
||||||
|
networks: |
||||||
|
- gitea |
||||||
|
volumes: |
||||||
|
- ./data/gitea:/data |
||||||
|
- /etc/timezone:/etc/timezone:ro |
||||||
|
- /etc/localtime:/etc/localtime:ro |
||||||
|
ports: |
||||||
|
- "3030:3000" |
||||||
|
- "222:22" |
||||||
|
restart: always |
@ -0,0 +1,54 @@ |
|||||||
|
#!/bin/bash |
||||||
|
set -euo pipefail |
||||||
|
die() { echo >&2 "$@" ; exit 1 ; } |
||||||
|
|
||||||
|
DIRNAME="$(dirname $0)" |
||||||
|
cd "$DIRNAME" |
||||||
|
|
||||||
|
docker-compose down |
||||||
|
|
||||||
|
../keycloak/client-delete gitea |
||||||
|
|
||||||
|
GITEA_CLIENT_SECRET="$(openssl rand -hex 32)" |
||||||
|
|
||||||
|
rm -f env.secrets |
||||||
|
cat <<EOF > env.secrets |
||||||
|
# DO NOT CHECK IN |
||||||
|
#GITEA_CLIENT_SECRET=$GITEA_CLIENT_SECRET |
||||||
|
EOF |
||||||
|
|
||||||
|
../keycloak/client-create <<EOF || die "unable to create gitea client" |
||||||
|
{ |
||||||
|
"clientId": "gitea", |
||||||
|
"rootUrl": "https://$GITEA_HOSTNAME", |
||||||
|
"adminUrl": "https://$GITEA_HOSTNAME", |
||||||
|
"redirectUris": [ "https://$GITEA_HOSTNAME/*" ], |
||||||
|
"webOrigins": [ "https://$GITEA_HOSTNAME" ] |
||||||
|
"clientAuthenticatorType": "client-secret", |
||||||
|
"secret": "$GITEA_CLIENT_SECRET" |
||||||
|
} |
||||||
|
EOF |
||||||
|
|
||||||
|
docker-compose up -d || die "unable to start container" |
||||||
|
|
||||||
|
echo SLEEPING |
||||||
|
sleep 30 |
||||||
|
|
||||||
|
test -f ./data/app.ini || die "missing data/app.ini" |
||||||
|
|
||||||
|
grep --quiet '\[openid\]' ./data/app.ini || { |
||||||
|
echo <<EOF >>./data/app.ini || die "unable to enable OpenID in app.ini" |
||||||
|
;service] |
||||||
|
; Only allow registering via OpenID |
||||||
|
;DISABLE_REGISTRATION = false |
||||||
|
;ALLOW_ONLY_EXTERNAL_REGISTRATION = true |
||||||
|
[openid] |
||||||
|
; do not allow signin to local users via OpenID |
||||||
|
ENABLE_OPENID_SIGNIN = false |
||||||
|
; allow creation of new users via OpenID |
||||||
|
ENABLE_OPENID_SIGNUP = true |
||||||
|
EOF |
||||||
|
} |
||||||
|
|
||||||
|
echo "TODO: Configure openID by visiting login.${DOMAIN_NAME}/ |
||||||
|
|
@ -0,0 +1,42 @@ |
|||||||
|
map $http_upgrade $connection_upgrade { |
||||||
|
default upgrade; |
||||||
|
'' close; |
||||||
|
} |
||||||
|
|
||||||
|
server { |
||||||
|
server_name ${GITEA_HOSTNAME}; |
||||||
|
client_max_body_size 128m; |
||||||
|
|
||||||
|
sendfile on; |
||||||
|
tcp_nopush on; |
||||||
|
tcp_nodelay on; |
||||||
|
keepalive_timeout 65; |
||||||
|
types_hash_max_size 2048; |
||||||
|
|
||||||
|
gzip on; |
||||||
|
gzip_disable "msie6"; |
||||||
|
|
||||||
|
proxy_read_timeout 1800s; |
||||||
|
|
||||||
|
location / { |
||||||
|
proxy_pass http://host.docker.internal:3030; |
||||||
|
proxy_set_header Host $host; |
||||||
|
proxy_set_header X-Real-IP $remote_addr; |
||||||
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; |
||||||
|
proxy_set_header X-Forwarded-Proto $scheme; |
||||||
|
} |
||||||
|
|
||||||
|
# login with OIDC |
||||||
|
location /user/login { |
||||||
|
return 302 https://login.hackerspace.zone/; |
||||||
|
} |
||||||
|
|
||||||
|
listen 443 ssl; |
||||||
|
ssl_certificate /etc/letsencrypt/live/${DOMAIN_NAME}/fullchain.pem; |
||||||
|
ssl_certificate_key /etc/letsencrypt/live/${DOMAIN_NAME}/privkey.pem; |
||||||
|
include /etc/nginx/includes/options-ssl-nginx.conf; |
||||||
|
include /etc/nginx/includes/challenge.conf; |
||||||
|
ssl_dhparam /etc/nginx/includes/ssl-dhparams.pem; |
||||||
|
} |
||||||
|
|
||||||
|
|
Loading…
Reference in new issue