forked from toolshed/docs.coopcloud.tech
		
	Yeet the app config guide
This commit is contained in:
		| @ -2,194 +2,14 @@ | ||||
| title: App config guide | ||||
| --- | ||||
|  | ||||
| ## Keycloak | ||||
| The tips that were previously on this page have moved to the relevant recipe README files, to keep everything in one place while we figure out the best long-term home for per-app documentation. Find the READMEs here: | ||||
|  | ||||
| #### How do I setup a custom theme? | ||||
| - [Keycloak][keycloak] | ||||
| - [Nextcloud][nextcloud] | ||||
| - [Drone][drone] | ||||
| - [Peertube][peertube] | ||||
|  | ||||
| Check [this approach](https://git.autonomic.zone/ruangrupa/login.lumbung.space). | ||||
|  | ||||
| #### How do I create another admin user? | ||||
|  | ||||
| - Under the `Master` realm > `Users` > `Add user` | ||||
| - Create the user and set a temporary password | ||||
| - Under the `Role Mappings` tab, move `admin` from `Available Roles` into `Assigned Roles` | ||||
|  | ||||
| ## Nextcloud | ||||
|  | ||||
| #### How do I customise the default home page when logging in? | ||||
|  | ||||
| - Delete the dashboard app since it is so corporate | ||||
| - Follow [these docs](https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/default_files_configuration.html) to set the default files list for each user in the Files app | ||||
| - Configure a `defaultapp` in your `config.php` or use [apporder](https://apps.nextcloud.com/apps/apporder) | ||||
|  | ||||
| #### How do I integrate with Keycloak SSO? | ||||
|  | ||||
| Use [this plugin](https://github.com/pulsejet/nextcloud-oidc-login). Unlike the plugin it's forked from, there is no configuration UI, so you'll need to edit `/var/www/html/config/config.php`: | ||||
|  | ||||
| ``` | ||||
|   'oidc_login_client_id' => 'nextcloud', | ||||
|   'oidc_login_client_secret' => 'mysecret', | ||||
|   'oidc_login_provider_url' => 'https://example.com/auth/realms/myrealm', | ||||
|   'oidc_login_disable_registration' => false, | ||||
|   'oidc_login_hide_password_form' => true, | ||||
|   'oidc_login_button_text' => 'Log in with your myssodomain', | ||||
|   'oidc_login_default_group' => 'mygroup', | ||||
|   'oidc_login_attributes' => | ||||
|   array ( | ||||
|     'id' => 'sub', | ||||
|     'name' => 'name', | ||||
|     'mail' => 'email', | ||||
|   ), | ||||
|   'oidc_create_groups' => true, | ||||
| ``` | ||||
|  | ||||
| You can use [this trick](https://janikvonrotz.ch/2020/10/20/openid-connect-with-nextcloud-and-keycloak/) (see "Cryptic Usernames" work-around) to get proper usernames. | ||||
|  | ||||
| You might also need the following "Why is my synchronisation.." change if you see an error `'redirect_uri' is invalid`. | ||||
|  | ||||
| If you ever need to change the realm, you'll need to reset the cache with: | ||||
|  | ||||
| ``` | ||||
| docker exec -u www-data <container-id> php occ config:app:delete oidc_login last_updated_well_known | ||||
| docker exec -u www-data <container-id> php occ config:app:delete oidc_login last_updated_jwks | ||||
| ``` | ||||
|  | ||||
| #### Why is my synchronisation client freezing on the "grant access" step? | ||||
|  | ||||
| Please see [this ticket](https://git.autonomic.zone/coop-cloud/nextcloud/issues/5). | ||||
|  | ||||
| #### How can I customise the CSS? | ||||
|  | ||||
| There is some basic stuff in the admin settings. | ||||
|  | ||||
| To go a little deeper, you can use [this handy app](https://apps.nextcloud.com/apps/theming_customcss). | ||||
|  | ||||
| Here is an example CSS config which hides the local login and makes space for a central image: | ||||
|  | ||||
| ```css | ||||
| #body-login .wrapper main form[name="login"], | ||||
| #body-login .wrapper main form[name="login"] ~ a { | ||||
|   display: none; | ||||
| } | ||||
|  | ||||
| #body-login .logo { | ||||
|   visibility: hidden; | ||||
| } | ||||
|  | ||||
| #body-login #alternative-logins a.button[href*="oidc"] { | ||||
|   background: #233b4a; | ||||
|   color: #fff; | ||||
|   transition: all 0.2s ease-in-out; | ||||
| } | ||||
| #body-login #alternative-logins a.button[href*="oidc"]:hover { | ||||
|   background: linear-gradient(-35deg, #233b4a 40%, #486c83 100%); | ||||
| } | ||||
|  | ||||
| #body-login #alternative-logins a.button[href*="/sociallogin/oauth/google"] { | ||||
|   border: 0; | ||||
|   color: #db4437 !important; | ||||
|   background-color: #fff; | ||||
| } | ||||
|  | ||||
| #body-login | ||||
|   #alternative-logins | ||||
|   a.button[href*="/sociallogin/oauth/google"]::before { | ||||
|   width: 25px; | ||||
|   background-color: #db4437; | ||||
|   border-radius: 100%; | ||||
|   background-size: 60%; | ||||
|   background-position: center; | ||||
|   height: 25px; | ||||
|   vertical-align: middle; | ||||
|   margin-right: 4px; | ||||
| } | ||||
|  | ||||
| #body-login main { | ||||
|   padding: 50vh 0 0 0; | ||||
| } | ||||
|  | ||||
| #body-login a[href*="#body-login"] { | ||||
|   visibility: hidden; | ||||
| } | ||||
|  | ||||
| #body-login footer a, | ||||
| #body-login footer p { | ||||
|   color: #233b4a; | ||||
| } | ||||
|  | ||||
| #body-login footer a:hover { | ||||
|   color: #fff; | ||||
| } | ||||
|  | ||||
| #body-login footer p.info { | ||||
|   text-shadow: none; | ||||
| } | ||||
| ``` | ||||
|  | ||||
| ## Drone | ||||
|  | ||||
| #### Generating deploy keys | ||||
|  | ||||
| We normally do something like the following. | ||||
|  | ||||
| ```bash | ||||
| ssh-keygen -t ed25519 -C drone@swarm.autonomic.zone | ||||
| ``` | ||||
|  | ||||
| When you're loading them into Drone, make sure to use the right name of the organisation when using `drone orgsecret add`. | ||||
|  | ||||
| #### How to change orgsecret values | ||||
|  | ||||
| First, get your Drone CLI tool downloaded and the environment configured. | ||||
|  | ||||
| ```bash | ||||
| export DRONE_SERVER=https://drone.example.com | ||||
| export DRONE_TOKEN=$(pass show your-pass-store-path) | ||||
| curl -L https://github.com/drone/drone-cli/releases/latest/download/drone_linux_amd64.tar.gz | tar zx | ||||
| ``` | ||||
|  | ||||
| Then you can do things like: | ||||
|  | ||||
| ``` | ||||
| ./drone orgsecret ls | ||||
| ./drone orgsecret add someorg my_deploy_key @my_private_key_file | ||||
| ``` | ||||
|  | ||||
| #### How to enable build failure notifications | ||||
|  | ||||
| Add this to your `.drone.yml` file. See the [plugin docs](http://plugins.drone.io/drone-plugins/drone-slack/) for more. | ||||
|  | ||||
| ```yaml | ||||
| - name: notify rocket chat | ||||
|   image: plugins/slack | ||||
|   depends_on: ["mybuild"] | ||||
|   settings: | ||||
|     webhook: | ||||
|       from_secret: rc_builds_url | ||||
|     username: foobar | ||||
|     channel: "builds" | ||||
|     template: "{{repo.owner}}/{{repo.name}} build failed: {{build.link}}" | ||||
|   when: | ||||
|     status: | ||||
|       - failure | ||||
| ``` | ||||
|  | ||||
| !!! warning | ||||
|  | ||||
|     You must include valid names of pipelines in your `depends_on` list field. | ||||
|     This is so that the notification will wait until all other pipelines are | ||||
|     run before performing the notification logic. | ||||
|  | ||||
| #### Skipping CI builds | ||||
|  | ||||
| Add `[ci skip]` into the git commit message. You don't have to run builds if you don't want to. | ||||
|  | ||||
| ## Peertube | ||||
|  | ||||
| #### How do I wire up Keycloak SSO? | ||||
|  | ||||
| Use [this plugin](https://framagit.org/framasoft/peertube/official-plugins/tree/master/peertube-plugin-auth-openid-connect). | ||||
|  | ||||
| #### How do I develop a custom theme? | ||||
|  | ||||
| See [this approach](https://git.autonomic.zone/ruangrupa/peertube-plugin-lumbung-space). | ||||
| [keycloak]: https://git.coopcloud.tech/coop-cloud/keycloak | ||||
| [nextcloud]: https://git.coopcloud.tech/coop-cloud/nextcloud | ||||
| [drone]: https://git.coopcloud.tech/coop-cloud/drone | ||||
| [peertube]: https://git.coopcloud.tech/coop-cloud/peertube | ||||
|  | ||||
		Reference in New Issue
	
	Block a user