forked from coop-cloud/nextcloud
Compare commits
6 Commits
12.1.0+31.
...
user_oidc_
| Author | SHA1 | Date | |
|---|---|---|---|
| ec5934e191 | |||
| 4c3f6fa14d | |||
| eb3816b9c2 | |||
| 8b7ed8142e | |||
| 87b064c773 | |||
| d6a77fac4d |
10
.env.sample
10
.env.sample
@ -1,5 +1,5 @@
|
||||
TYPE=nextcloud
|
||||
TIMEOUT=900
|
||||
#TIMEOUT=900
|
||||
ENABLE_AUTO_UPDATE=true
|
||||
ENABLE_BACKUPS=true
|
||||
|
||||
@ -93,6 +93,14 @@ DEFAULT_QUOTA="10 GB"
|
||||
#SECRET_TALK_TURN_SECRET_VERSION=v1 # length=64 charset=default
|
||||
#SECRET_TALK_SIGNALING_SECRET_VERSION=v1 # length=64 charset=default
|
||||
|
||||
# COMPOSE_FILE="$COMPOSE_FILE:compose.user_oidc.yml"
|
||||
# APPS="$APPS user_oidc"
|
||||
# USER_OIDC_PROVIDER=
|
||||
# USER_OIDC_ID=
|
||||
# USER_OIDC_DISCOVERY_URI=
|
||||
# USER_OIDC_END_SESSION_URI=
|
||||
# USER_OIDC_LOGIN_ONLY=false
|
||||
# SECRET_USER_OIDC_SECRET_VERSION=v1
|
||||
|
||||
# HSTS Options
|
||||
# Uncomment this line to enable HSTS: https://docs.nextcloud.com/server/30/admin_manual/installation/harden_server.html
|
||||
|
||||
25
README.md
25
README.md
@ -188,6 +188,31 @@ We've been able to get this setup by using the [social login](https://apps.nextc
|
||||
|
||||
If using Keycloak, you'll want to do [this trick](https://janikvonrotz.ch/2020/10/20/openid-connect-with-nextcloud-and-keycloak/) also.
|
||||
|
||||
## How do I enable OpenID Connect (OIDC) providers?
|
||||
[user_oidc](https://github.com/nextcloud/user_oidc) is the recommended way to integrate Nextcloud with OIDC providers.
|
||||
|
||||
Run `abra app config <app-name>`
|
||||
|
||||
Set the following envs:
|
||||
```env
|
||||
COMPOSE_FILE="$COMPOSE_FILE:compose.user_oidc.yml"
|
||||
APPS="$APPS user_oidc"
|
||||
USER_OIDC_PROVIDER=example-provider # this has been tested with keycloak
|
||||
USER_OIDC_ID=example-client-id # get this from your oidc provider
|
||||
USER_OIDC_DISCOVERY_URI=example-oidc-provider.com/.well-known/openid-configuration # get this from your oidc provider
|
||||
USER_OIDC_END_SESSION_URI=example-oidc-provider.com/protocol/openid-connect/logout # get this from your oidc provider
|
||||
USER_OIDC_LOGIN_ONLY=false # set this to true to automatically redirect all logins to your oidc provider
|
||||
SECRET_USER_OIDC_SECRET_VERSION=v1
|
||||
```
|
||||
|
||||
Then insert the client secret from your OIDC provider:
|
||||
```sh
|
||||
abra app secret insert <app-name> user_oidc_secret v1 <client-secret from oidc provider>
|
||||
```
|
||||
|
||||
After you deploy (or redeploy), run the following to set up the user_oidc Nextcloud app:
|
||||
`abra app cmd <app-name> app set_user_oidc`
|
||||
|
||||
## How can I customise the CSS?
|
||||
|
||||
There is some basic stuff in the admin settings.
|
||||
|
||||
17
abra.sh
17
abra.sh
@ -159,6 +159,23 @@ set_authentik() {
|
||||
run_occ 'config:system:set lost_password_link --value=disabled'
|
||||
}
|
||||
|
||||
set_user_oidc() {
|
||||
install_apps user_oidc
|
||||
USER_OIDC_SECRET=$(cat /run/secrets/user_oidc_secret)
|
||||
run_occ "user_oidc:provider \
|
||||
--clientid=${USER_OIDC_ID} \
|
||||
--clientsecret=${USER_OIDC_SECRET} \
|
||||
--discoveryuri=${USER_OIDC_DISCOVERY_URI} \
|
||||
--endsessionendpointuri=${USER_OIDC_END_SESSION_URI} \
|
||||
--postlogouturi=https://${DOMAIN} \
|
||||
--scope='openid email profile' \
|
||||
${USER_OIDC_PROVIDER}"
|
||||
# disable non user_oidc login
|
||||
if [[ ${USER_OIDC_LOGIN_ONLY:-false} = "true" ]]; then
|
||||
run_occ "config:app:set --value=0 user_oidc allow_multiple_user_backends"
|
||||
fi
|
||||
}
|
||||
|
||||
disable_skeletondirectory() {
|
||||
run_occ "config:system:set skeletondirectory --value ''"
|
||||
}
|
||||
|
||||
@ -29,7 +29,7 @@ services:
|
||||
mode: 0600
|
||||
|
||||
searchindexer:
|
||||
image: nextcloud:31.0.6-fpm
|
||||
image: nextcloud:32.0.3-fpm
|
||||
volumes:
|
||||
- nextcloud:/var/www/html/
|
||||
- nextapps:/var/www/html/custom_apps:cached
|
||||
|
||||
10
compose.user_oidc.yml
Normal file
10
compose.user_oidc.yml
Normal file
@ -0,0 +1,10 @@
|
||||
version: "3.8"
|
||||
services:
|
||||
app:
|
||||
secrets:
|
||||
- user_oidc_secret
|
||||
|
||||
secrets:
|
||||
user_oidc_secret:
|
||||
external: true
|
||||
name: ${STACK_NAME}_user_oidc_secret_${SECRET_USER_OIDC_SECRET_VERSION}
|
||||
@ -6,7 +6,7 @@ services:
|
||||
- whiteboard_jwt
|
||||
|
||||
whiteboard:
|
||||
image: ghcr.io/nextcloud-releases/whiteboard:v1.1.2
|
||||
image: ghcr.io/nextcloud-releases/whiteboard:v1.5.0
|
||||
deploy:
|
||||
labels:
|
||||
- traefik.enable=true
|
||||
|
||||
14
compose.yml
14
compose.yml
@ -1,7 +1,7 @@
|
||||
version: "3.8"
|
||||
services:
|
||||
web:
|
||||
image: nginx:1.29.0
|
||||
image: nginx:1.29.4
|
||||
depends_on:
|
||||
- app
|
||||
configs:
|
||||
@ -41,14 +41,14 @@ services:
|
||||
- "caddy.reverse_proxy={{upstreams 80}}"
|
||||
- "caddy.tls.on_demand="
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", 'curl -s -N curl -Ns localhost/status.php | grep "installed\":true"']
|
||||
test: ["CMD-SHELL", "curl -fsS http://localhost/status.php | grep -q '\"installed\":true'"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 10
|
||||
start_period: 5m
|
||||
|
||||
app:
|
||||
image: nextcloud:31.0.6-fpm
|
||||
image: nextcloud:32.0.3-fpm
|
||||
depends_on:
|
||||
- db
|
||||
configs:
|
||||
@ -95,8 +95,8 @@ services:
|
||||
failure_action: rollback
|
||||
order: start-first
|
||||
labels:
|
||||
- "coop-cloud.${STACK_NAME}.version=12.1.0+31.0.6-fpm"
|
||||
- "coop-cloud.${STACK_NAME}.timeout=${TIMEOUT:-120}"
|
||||
- "coop-cloud.${STACK_NAME}.version=13.0.1+32.0.3-fpm"
|
||||
- "coop-cloud.${STACK_NAME}.timeout=${TIMEOUT}"
|
||||
- "backupbot.backup=${ENABLE_BACKUPS:-true}"
|
||||
- "backupbot.backup.volumes.redis=false"
|
||||
#- "backupbot.backup.volumes.nextcloud=false"
|
||||
@ -109,7 +109,7 @@ services:
|
||||
start_period: 15m
|
||||
|
||||
cron:
|
||||
image: nextcloud:31.0.6-fpm
|
||||
image: nextcloud:32.0.3-fpm
|
||||
volumes:
|
||||
- nextcloud:/var/www/html/
|
||||
- nextapps:/var/www/html/custom_apps:cached
|
||||
@ -125,7 +125,7 @@ services:
|
||||
|
||||
|
||||
cache:
|
||||
image: redis:8.0.2-alpine
|
||||
image: redis:8.4.0-alpine
|
||||
networks:
|
||||
- internal
|
||||
volumes:
|
||||
|
||||
Reference in New Issue
Block a user