Create the admin user as a separate command (#233)

This means the migrations can always be run on startup, meaning the database won't get out of sync with the running application. It also means users who don't set the credential variables in their compose files don't keep creating admin users every time the application starts.
This commit is contained in:
Jake Howard 2020-07-28 12:11:02 +01:00 committed by GitHub
parent a3b7cb1af0
commit ff9e4b444b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 18 additions and 11 deletions

View File

@ -78,6 +78,7 @@ After the release, these are available under `_build/prod/rel/plausible` --
```bash
_build/prod/rel/plausible/createdb.sh
_build/prod/rel/plausible/init-admin.sh
_build/prod/rel/plausible/migrate.sh
_build/prod/rel/plausible/rollback.sh
_build/prod/rel/plausible/seed.sh
@ -87,6 +88,7 @@ the same is available in the docker images as follows --
```bash
docker run plausible:master-12add db createdb
docker run plausible:master-12add db init-admin
docker run plausible:master-12add db migrate
docker run plausible:master-12add db rollback
docker run plausible:master-12add db seed
@ -120,7 +122,7 @@ Following are the variables that can be used to configure the availability of th
- Disables changing of subscription and removes the trial notice banner (use with caution!) _defaults to `false`_
### Default User Generation
For self-hosting, a default user is generated during the [Database Migration](#Database Migration) to access Plausible. To be noted that, a default user is a user whose trial period expires in 100 Years ;).
For self-hosting, a default user can be generated using the `db init-admin` command. To be noted that, a default user is a user whose trial period expires in 100 Years ;).
It is *highly* recommended that you configure these parameters.
- ADMIN_USER_NAME

View File

@ -38,7 +38,7 @@ services:
build:
context: .
dockerfile: ./Dockerfile
command: sh -c "sleep 10 && /entrypoint.sh run"
command: sh -c "sleep 10 && /entrypoint.sh db migrate && /entrypoint.sh run"
depends_on:
- plausible_db
- plausible_events_db
@ -57,7 +57,7 @@ services:
build:
context: .
dockerfile: ./Dockerfile
command: sh -c "sleep 10 && /entrypoint.sh db createdb && /entrypoint.sh db migrate"
command: sh -c "sleep 10 && /entrypoint.sh db createdb && /entrypoint.sh db migrate && /entrypoint.sh db init-admin"
depends_on:
- plausible_db
- plausible_events_db

View File

@ -36,7 +36,6 @@ defmodule Plausible.Release do
def migrate do
prepare()
Enum.each(repos(), &run_migrations_for/1)
init_admin()
prepare_clickhouse()
run_migrations_for_ch()
IO.puts("Migrations successful!")

6
rel/overlays/init-admin.sh Executable file
View File

@ -0,0 +1,6 @@
#!/bin/sh
# Create an admin user
BIN_DIR=`dirname "$0"`
${BIN_DIR}/bin/plausible eval Plausible.Release.init_admin