Adds bookwyrm app.

This commit is contained in:
2026-06-19 21:32:56 +00:00
parent 78ac8d0cbb
commit 7b41ed5148
11 changed files with 493 additions and 0 deletions

View File

@@ -0,0 +1,83 @@
apiVersion: batch/v1
kind: Job
metadata:
name: bookwyrm-db-init
namespace: bookwyrm
spec:
template:
metadata:
labels:
component: db-init
spec:
securityContext:
runAsNonRoot: true
runAsUser: 999
runAsGroup: 999
seccompProfile:
type: RuntimeDefault
restartPolicy: OnFailure
containers:
- name: db-init
image: postgres:16-alpine
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
readOnlyRootFilesystem: false
env:
- name: PGHOST
value: "{{ .db.host }}"
- name: PGPORT
value: "{{ .db.port }}"
- name: PGUSER
value: postgres
- name: PGPASSWORD
valueFrom:
secretKeyRef:
name: bookwyrm-secrets
key: postgres.password
- name: BOOKWYRM_DB_USER
value: "{{ .db.user }}"
- name: BOOKWYRM_DB_NAME
value: "{{ .db.name }}"
- name: BOOKWYRM_DB_PASSWORD
valueFrom:
secretKeyRef:
name: bookwyrm-secrets
key: dbPassword
command:
- /bin/sh
- -c
- |
echo "Initializing BookWyrm database..."
# Create user if it doesn't exist
psql -c "
DO \$\$
BEGIN
IF NOT EXISTS (SELECT FROM pg_catalog.pg_roles WHERE rolname = '$BOOKWYRM_DB_USER') THEN
CREATE USER \"$BOOKWYRM_DB_USER\" WITH PASSWORD '$BOOKWYRM_DB_PASSWORD';
ELSE
ALTER USER \"$BOOKWYRM_DB_USER\" WITH PASSWORD '$BOOKWYRM_DB_PASSWORD';
END IF;
END
\$\$;
"
# Create database if it doesn't exist
if ! psql -lqt | cut -d \| -f 1 | grep -qw "$BOOKWYRM_DB_NAME"; then
echo "Creating database $BOOKWYRM_DB_NAME..."
createdb -O "$BOOKWYRM_DB_USER" "$BOOKWYRM_DB_NAME"
else
echo "Database $BOOKWYRM_DB_NAME already exists."
fi
# Grant privileges
psql -d "$BOOKWYRM_DB_NAME" -c "
GRANT ALL PRIVILEGES ON DATABASE \"$BOOKWYRM_DB_NAME\" TO \"$BOOKWYRM_DB_USER\";
GRANT ALL ON SCHEMA public TO \"$BOOKWYRM_DB_USER\";
GRANT USAGE ON SCHEMA public TO \"$BOOKWYRM_DB_USER\";
"
echo "Database initialization completed."