docker-compose -> docker compose

bookstack
micro 11 hours ago
parent f30f251322
commit b567d2bb37

@ -7,7 +7,7 @@ Infrastructure for the self-hosted, single-sign-on, community-run services.
* Install dependencies:
```
apt install jq docker-compose
apt install jq docker compose
```
* Setup each of the services. `keycloak` and `nginx` are required to start the others:

@ -1,5 +1,3 @@
version: "3"
services:
bookstack:
image: lscr.io/linuxserver/bookstack:24.02.3

@ -10,11 +10,11 @@ DATA="../data/bookstack"
SECRETS="$DATA/env.secrets"
if [ -r "$SECRETS" ]; then
docker-compose up -d || die "hedgedoc: unable to start"
docker compose up -d || die "hedgedoc: unable to start"
exit 0
fi
docker-compose down 2>/dev/null
docker compose down 2>/dev/null
# regenerate the client secrets
CLIENT_SECRET="$(openssl rand -hex 20)"
@ -62,4 +62,4 @@ EOF
}
EOF
docker-compose up -d || die "hedgedoc: unable to start container"
docker compose up -d || die "hedgedoc: unable to start container"

@ -1,5 +1,3 @@
version: "3"
networks:
gitea:
external: false

@ -13,7 +13,7 @@ SECRETS="$DATA/env.secrets"
INI="$DATA/gitea/conf/app.ini"
if [ -r "$SECRETS" ]; then
docker-compose up -d || die "unable to start"
docker compose up -d || die "unable to start"
exit 0
fi
@ -36,7 +36,7 @@ GITEA__security__SECRET_KEY=$(openssl rand -hex 32)
EOF
docker-compose down 2>/dev/null
docker compose down 2>/dev/null
../keycloak/client-delete gitea 2>/dev/null
../keycloak/client-create <<EOF || die "unable to create gitea client"
@ -51,13 +51,13 @@ docker-compose down 2>/dev/null
}
EOF
docker-compose up -d || die "unable to start container"
docker compose up -d || die "unable to start container"
info "waiting for startup..."
sleep 5
info "adding oauth login"
docker-compose exec -u git gitea \
docker compose exec -u git gitea \
gitea admin auth add-oauth \
--name "keycloak" \
--provider "openidConnect" \

@ -1,4 +1,3 @@
version: '3'
services:
database:
image: postgres:13.4-alpine

@ -3,18 +3,18 @@ die() { echo >&2 "$@" ; exit 1 ; }
DIRNAME="$(dirname $0)"
cd "$DIRNAME"
source ../env.production || die "no top levle env?"
source ../env.production || die "no top level env?"
source env.production || die "no local env?"
DATA="../data/hedgedoc"
SECRETS="$DATA/env.secrets"
if [ -r "$SECRETS" ]; then
docker-compose up -d || die "hedgedoc: unable to start"
docker compose up -d || die "hedgedoc: unable to start"
exit 0
fi
docker-compose down 2>/dev/null
docker compose down 2>/dev/null
# regenerate the client secrets
CLIENT_SECRET="$(openssl rand -hex 20)"
@ -66,4 +66,4 @@ EOF
}
EOF
docker-compose up -d || die "hedgedoc: unable to start container"
docker compose up -d || die "hedgedoc: unable to start container"

@ -35,13 +35,13 @@ There is <a href="https://github.com/osresearch/hackerspace-zone/issues/1">proba
* Mastodon doesn't set roles via SSO ([issue 18335](https://github.com/mastodon/mastodon/issues/18335)). To make a user admin from the command line as <tt>root</tt> requires the username:
<pre>
cd mastodon
docker-compose exec -T mastodon \
docker compose exec -T mastodon \
bin/tootctl accounts modify USERNAME --role admin
</pre>
* Mobilizon doesn't set roles via SSO ([issue 1105](https://framagit.org/framasoft/mobilizon/-/issues/1105), on roadmap for 2.2). To make a user admin from the command line as <tt>root</tt> requires the registered email address:
<pre>
cd mobilizon
docker-compose exec -T mobilizon \
docker compose exec -T mobilizon \
bin/mobilizon_ctl users.modify EMAIL --admin
</pre>

@ -8,7 +8,7 @@ source ../env.production || die "no top levle env?"
source env.production || die "no local env?"
source "../data/keycloak/env.secrets" || die "no local secrets?"
docker-compose exec -T keycloak \
docker compose exec -T keycloak \
/opt/keycloak/bin/kcadm.sh \
create clients \
--server http://localhost:8080/ \

@ -14,7 +14,7 @@ if [ -z "$CLIENT_NAME" ]; then
die "usage: $0 clientName"
fi
CLIENT_ID="$(docker-compose exec -T keycloak \
CLIENT_ID="$(docker compose exec -T keycloak \
/opt/keycloak/bin/kcadm.sh \
get clients \
--server http://localhost:8080/ \
@ -29,7 +29,7 @@ if [ -z "$CLIENT_ID" ]; then
fi
echo "$0: $CLIENT_NAME = $CLIENT_ID"
docker-compose exec -T keycloak \
docker compose exec -T keycloak \
/opt/keycloak/bin/kcadm.sh \
delete "clients/$CLIENT_ID" \
--server http://localhost:8080/ \

@ -1,5 +1,3 @@
version: '3'
volumes:
mysql_data:
driver: local

@ -11,11 +11,11 @@ source "../env.smtp" 2>/dev/null
SECRETS="../data/keycloak/env.secrets"
if [ -r "$SECRETS" ]; then
docker-compose up -d || die "keycloak: unable to start container"
docker compose up -d || die "keycloak: unable to start container"
exit 0
fi
docker-compose down 2>/dev/null
docker compose down 2>/dev/null
KEYCLOAK_ADMIN_PASSWORD="$(openssl rand -hex 8)"
echo "Keycloak admin password $KEYCLOAK_ADMIN_PASSWORD"
@ -26,13 +26,13 @@ cat <<EOF > "$SECRETS"
KEYCLOAK_ADMIN_PASSWORD=$KEYCLOAK_ADMIN_PASSWORD
EOF
docker-compose up -d || die "unable to start keycloak"
docker compose up -d || die "unable to start keycloak"
echo "sleeping a minute while keycloak initializes..."
sleep 30
info "logging into server"
docker-compose exec keycloak \
docker compose exec keycloak \
/opt/keycloak/bin/kcadm.sh \
config credentials \
--server http://localhost:8080/ \
@ -43,7 +43,7 @@ docker-compose exec keycloak \
info "Create a new realm for '$REALM'"
docker-compose exec keycloak \
docker compose exec keycloak \
/opt/keycloak/bin/kcadm.sh \
create realms \
-s "realm=$REALM" \
@ -53,7 +53,7 @@ docker-compose exec keycloak \
# https://github.com/hedgedoc/hedgedoc/issues/56
info "Fix up a id bug"
docker-compose exec -T keycloak \
docker compose exec -T keycloak \
/opt/keycloak/bin/kcadm.sh \
create client-scopes \
-r "$REALM" \
@ -85,7 +85,7 @@ EOF
if [ -n "$SMTP_SERVER" ]; then
info "configuring email"
docker-compose exec -T keycloak \
docker compose exec -T keycloak \
/opt/keycloak/bin/kcadm.sh update "realms/$REALM" \
-f - <<EOF || die "unable to configure email"
{
@ -107,7 +107,7 @@ fi
info "Create an admin user in realm"
docker-compose exec -T keycloak \
docker compose exec -T keycloak \
/opt/keycloak/bin/kcadm.sh \
create users \
-o \

@ -1,4 +1,3 @@
version: '3'
services:
database:
image: postgres:13.4-alpine

@ -5,8 +5,8 @@
# https://docs.joinmastodon.org/admin/config/ for the full documentation.
# Note that this file accepts slightly different syntax depending on whether
# you are using `docker-compose` or not. In particular, if you use
# `docker-compose`, the value of each declared variable will be taken verbatim,
# you are using `docker compose` or not. In particular, if you use
# `docker compose`, the value of each declared variable will be taken verbatim,
# including surrounding quotes.
# See: https://github.com/mastodon/mastodon/issues/16895

@ -14,12 +14,12 @@ chmod 777 ../data/mastodon/system
SECRETS="../data/mastodon/env.secrets"
if [ -r "$SECRETS" ]; then
docker-compose up -d || die "unable to restart mastodon"
docker compose up -d || die "unable to restart mastodon"
exit 0
fi
# have to bring it all down before we touch the files
docker-compose down
docker compose down
OIDC_CLIENT_SECRET="$(openssl rand -hex 32)"
@ -49,13 +49,13 @@ EOF
fi
info "mastodon: creating push keys"
docker-compose run --rm mastodon \
docker compose run --rm mastodon \
rails mastodon:webpush:generate_vapid_key \
>> "$SECRETS" \
|| die "unable to generate vapid key"
info "mastodon: setting up database"
docker-compose run --rm mastodon \
docker compose run --rm mastodon \
rails db:setup \
|| die "unable to login"
@ -75,4 +75,4 @@ info "mastodon: creating keycloak interface"
}
EOF
docker-compose up -d || die "mastodon: unable to start container"
docker compose up -d || die "mastodon: unable to start container"

@ -1,4 +1,3 @@
version: '3'
services:
postgres:
image: postgres:13.4-alpine

@ -12,11 +12,11 @@ DATA="../data/matrix"
SYNAPSE_DIR="$DATA/synapse"
HOMESERVER_YAML="$SYNAPSE_DIR/homeserver.yaml"
if [ -r "$HOMESERVER_YAML" ]; then
docker-compose up -d || die "matrix: unable to restart"
docker compose up -d || die "matrix: unable to restart"
exit 0
fi
docker-compose down 2>/dev/null
docker compose down 2>/dev/null
mkdir -p "$DATA"
# fix up the Element client config to have the correct hostname
@ -30,7 +30,7 @@ envsubst < "element-config.json.template" > "$DATA/element-config.json"
# but it is hosted on "matrix.DOMAIN_NAME".
# the syntax here is confusing and it is not clear in
# the docs *which* have to be updated.
docker-compose run \
docker compose run \
--rm \
-e SYNAPSE_SERVER_NAME="$DOMAIN_NAME" \
-e SYNAPSE_REPORT_STATS="no" \
@ -86,4 +86,4 @@ fi
EOF
docker-compose up -d || die "matrix: unable to start container"
docker compose up -d || die "matrix: unable to start container"

@ -11,11 +11,11 @@ DATA="../data/mobilizon"
SECRETS="$DATA/env.secrets"
if [ -r "$SECRETS" ]; then
docker-compose up -d || die "unable to start"
docker compose up -d || die "unable to start"
exit 0
fi
docker-compose down 2>/dev/null
docker compose down 2>/dev/null
CLIENT_SECRET="$(openssl rand -hex 20)"
@ -57,6 +57,6 @@ fi
}
EOF
docker-compose up -d || die "unable to start container"
docker compose up -d || die "unable to start container"

@ -1,5 +1,3 @@
version: "3"
services:
database:
image: postgres:16-alpine

@ -8,11 +8,11 @@ source env.production || die "no local env?"
SECRETS="../data/nextcloud/env.secrets"
if [ -r "$SECRETS" ]; then
docker-compose up -d || die "nextcloud: unable to start"
docker compose up -d || die "nextcloud: unable to start"
exit 0
fi
docker-compose down 2>/dev/null
docker compose down 2>/dev/null
NEXTCLOUD_CLIENT_SECRET="$(openssl rand -hex 32)"
NEXTCLOUD_ADMIN_PASSWORD="$(openssl rand -hex 6)"
@ -51,7 +51,7 @@ EOF
)"
docker-compose up -d || die "unable to bring up docker"
docker compose up -d || die "unable to bring up docker"
# wait for the nextcloud instance to be responsive
# TODO: how to find out if it is ready?
@ -59,7 +59,7 @@ echo "Sleeping a minute while nextcloud installs"
sleep 60
docker-compose exec -u www-data -T nextcloud bash -x <<EOF || die "unable to configure sociallogin"
docker compose exec -u www-data -T nextcloud bash -x <<EOF || die "unable to configure sociallogin"
./occ app:install calendar
./occ app:install sociallogin
./occ config:app:set sociallogin prevent_create_email_exists --value=1 || exit 1

@ -23,7 +23,7 @@ fi
mkdir -p ../data/certbot/conf/archive/old
mv ../data/certbot/conf/archive/"${DOMAIN_NAME}"* ../data/certbot/conf/archive/old/
docker-compose run --rm certbot \
docker compose run --rm certbot \
certonly \
--webroot \
--webroot-path /var/www/certbot \
@ -41,4 +41,4 @@ live=../data/certbot/conf/live/woodbine.nyc
ln -frs ${creds}/fullchain1.pem ${live}/fullchain.pem
ln -frs ${creds}/privkey1.pem ${live}/privkey.pem
docker-compose exec nginx nginx -s reload
docker compose exec nginx nginx -s reload

@ -14,7 +14,7 @@ fi
certdir="../data/certbot/conf/live/${DOMAIN_NAME}"
if [ -r "$certdir/privkey.pem" ]; then
docker-compose up -d || die "nginx: unable to start"
docker compose up -d || die "nginx: unable to start"
exit 0
fi
@ -31,7 +31,7 @@ openssl req \
-subj "/CN=${DOMAIN_NAME}'" \
|| die "$certdir/privkey.pem: unable to create temp key"
docker-compose up -d || die "unable to bring up nginx"
docker compose up -d || die "unable to bring up nginx"
echo "SLEEPING..."
sleep 10

@ -2,7 +2,7 @@
die() { echo >&2 "$@" ; exit 1 ; }
which jq > /dev/null || die "jq not installed?"
which docker-compose > /dev/null || die "docker-compose not installed?"
which docker compose > /dev/null || die "docker compose not installed?"
source ./env.production || die "no production env?"

@ -3,5 +3,5 @@
for file in */docker-compose.yaml ; do
dir="$(dirname "$file")"
echo "$dir"
( cd "$dir" ; docker-compose down )
( cd "$dir" ; docker compose down )
done

Loading…
Cancel
Save