Reset Gokapi and log in with Pocket ID
Gokapi now keeps its config and data in /opt/stacks/gokapi instead of named volumes. config.json is templated with Pocket ID as the OIDC provider, so a fresh install never shows the open /setup wizard. On a new database a one-off run with --deployment-password creates the super admin, after which only existing users can log in. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,10 +1,16 @@
|
||||
---
|
||||
# Gokapi logs in through Pocket ID. config.json is written only on a fresh
|
||||
# install (Gokapi rewrites it on upgrades), so changing the template later
|
||||
# means deleting /opt/stacks/gokapi/config/config.json first.
|
||||
- name: make gokapi directories
|
||||
ansible.builtin.file:
|
||||
path: "{{ item }}"
|
||||
state: directory
|
||||
mode: '0700'
|
||||
loop:
|
||||
- /opt/stacks/gokapi
|
||||
- /opt/stacks/gokapi/config
|
||||
- /opt/stacks/gokapi/data
|
||||
|
||||
- name: Template out the compose file
|
||||
ansible.builtin.template:
|
||||
@@ -13,6 +19,45 @@
|
||||
owner: root
|
||||
mode: '0644'
|
||||
|
||||
- name: Template out the gokapi config (fresh installs only)
|
||||
ansible.builtin.template:
|
||||
src: gokapi-config.json.j2
|
||||
dest: /opt/stacks/gokapi/config/config.json
|
||||
owner: root
|
||||
mode: '0600'
|
||||
force: false
|
||||
no_log: true
|
||||
|
||||
- name: Check for an existing gokapi database
|
||||
ansible.builtin.stat:
|
||||
path: /opt/stacks/gokapi/data/gokapi.sqlite
|
||||
register: gokapi_db
|
||||
|
||||
# A new database has no users and Gokapi refuses to start, so run it once with
|
||||
# --deployment-password to create the super admin (the Pocket ID email above).
|
||||
- name: Create the gokapi super admin on a fresh install
|
||||
when: not gokapi_db.stat.exists
|
||||
block:
|
||||
- name: Start a one-off gokapi with a deployment password
|
||||
ansible.builtin.command:
|
||||
cmd: >-
|
||||
docker compose run -d --rm --no-deps --name gokapi-init gokapi
|
||||
/app/run.sh --deployment-password {{ vault_gokapi.deployment_password }}
|
||||
chdir: /opt/stacks/gokapi
|
||||
no_log: true
|
||||
|
||||
- name: Wait for the one-off gokapi to finish starting
|
||||
ansible.builtin.wait_for:
|
||||
path: /opt/stacks/gokapi/data/log.txt
|
||||
search_regex: Gokapi started
|
||||
timeout: 60
|
||||
always:
|
||||
- name: Stop the one-off gokapi
|
||||
ansible.builtin.command: docker rm -f gokapi-init
|
||||
when: not gokapi_db.stat.exists
|
||||
changed_when: true
|
||||
failed_when: false
|
||||
|
||||
- name: deploy gokapi stack
|
||||
community.docker.docker_compose_v2:
|
||||
project_src: /opt/stacks/gokapi
|
||||
|
||||
@@ -6,15 +6,12 @@ services:
|
||||
environment:
|
||||
TZ: "UTC"
|
||||
volumes:
|
||||
- gokapi_data:/app/data
|
||||
- gokapi_config:/app/config
|
||||
- ./data:/app/data
|
||||
- ./config:/app/config
|
||||
extra_hosts:
|
||||
- "{{ subdomains.pocketid }}:{{ docker.hairpin_ip }}"
|
||||
labels:
|
||||
mag37.dockcheck.update: true
|
||||
volumes:
|
||||
gokapi_data:
|
||||
driver: local
|
||||
gokapi_config:
|
||||
driver: local
|
||||
networks:
|
||||
default:
|
||||
external: true
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"Authentication": {
|
||||
"Method": 1,
|
||||
"SaltAdmin": "{{ vault_gokapi.salt_admin }}",
|
||||
"SaltFiles": "{{ vault_gokapi.salt_files }}",
|
||||
"Username": "{{ gokapi_admin_email }}",
|
||||
"HeaderKey": "",
|
||||
"OauthProvider": "https://{{ subdomains.pocketid }}",
|
||||
"OAuthClientId": "{{ vault_gokapi.pocketid.client_id }}",
|
||||
"OAuthClientSecret": "{{ vault_gokapi.pocketid.client_secret }}",
|
||||
"OauthGroupScope": "",
|
||||
"OAuthRecheckInterval": 12,
|
||||
"OAuthGroups": [],
|
||||
"OnlyRegisteredUsers": true
|
||||
},
|
||||
"Port": ":53842",
|
||||
"ServerUrl": "https://{{ subdomains.gokapi }}/",
|
||||
"RedirectUrl": "https://github.com/Forceu/Gokapi/",
|
||||
"PublicName": "Satellite Sharing",
|
||||
"DataDir": "data",
|
||||
"DatabaseUrl": "sqlite://./data/gokapi.sqlite",
|
||||
"ConfigVersion": 22,
|
||||
"MaxFileSizeMB": 102400,
|
||||
"MaxMemory": 50,
|
||||
"ChunkSize": 45,
|
||||
"MaxParallelUploads": 3,
|
||||
"Encryption": {
|
||||
"Level": 0,
|
||||
"Cipher": null,
|
||||
"Salt": "",
|
||||
"Checksum": "",
|
||||
"ChecksumSalt": ""
|
||||
},
|
||||
"UseSsl": false,
|
||||
"PicturesAlwaysLocal": false,
|
||||
"SaveIp": false,
|
||||
"IncludeFilename": false
|
||||
}
|
||||
Reference in New Issue
Block a user