forked from coop-cloud/docs.coopcloud.tech
Compare commits
3 Commits
main
...
styling-sp
Author | SHA1 | Date |
---|---|---|
femmefaytale | a6e5cdbfa3 | |
femmefaytale | 24118b80cc | |
Fay Arnold | 84e42178ac |
|
@ -1,4 +1,4 @@
|
|||
FROM squidfunk/mkdocs-material:8.2.5
|
||||
FROM squidfunk/mkdocs-material:8.2.1
|
||||
|
||||
EXPOSE 8000
|
||||
|
||||
|
|
|
@ -0,0 +1,87 @@
|
|||
{#-
|
||||
This file was copied from the Material theme
|
||||
You can find the file in .venv/lib/python3.10/site-packages/material/partials/header.html
|
||||
-#}
|
||||
{% set class = "md-header" %}
|
||||
{% if "navigation.tabs.sticky" in features %}
|
||||
{% set class = class ~ " md-header--lifted" %}
|
||||
{% endif %}
|
||||
<header class="{{ class }}" data-md-component="header">
|
||||
<nav class="md-header__inner md-grid" aria-label="{{ lang.t('header.title') }}">
|
||||
<a href="{{ config.extra.homepage | d(nav.homepage.url, true) | url }}" title="{{ config.site_name | e }}" class="md-header__button md-logo" aria-label="{{ config.site_name }}" data-md-component="logo">
|
||||
{% include "partials/logo.html" %}
|
||||
</a>
|
||||
<label class="md-header__button md-icon" for="__drawer">
|
||||
{% include ".icons/material/menu" ~ ".svg" %}
|
||||
</label>
|
||||
<div class="md-header__title" data-md-component="header-title">
|
||||
<div class="md-header__ellipsis">
|
||||
<div class="md-header__topic">
|
||||
<span class="md-ellipsis">
|
||||
{{ config.site_name }}
|
||||
</span>
|
||||
</div>
|
||||
<div class="md-header__topic" data-md-component="header-topic">
|
||||
<span class="md-ellipsis">
|
||||
{% if page and page.meta and page.meta.title %}
|
||||
{{ page.meta.title }}
|
||||
{% else %}
|
||||
{{ page.title }}
|
||||
{% endif %}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% if not config.theme.palette is mapping %}
|
||||
<form class="md-header__option" data-md-component="palette">
|
||||
{% for option in config.theme.palette %}
|
||||
{% set primary = option.primary | replace(" ", "-") | lower %}
|
||||
{% set accent = option.accent | replace(" ", "-") | lower %}
|
||||
<input class="md-option" data-md-color-media="{{ option.media }}" data-md-color-scheme="{{ option.scheme }}" data-md-color-primary="{{ primary }}" data-md-color-accent="{{ accent }}" {% if option.toggle %} aria-label="{{ option.toggle.name }}" {% else %} aria-hidden="true" {% endif %} type="radio" name="__palette" id="__palette_{{ loop.index }}">
|
||||
{% if option.toggle %}
|
||||
<label class="md-header__button md-icon" title="{{ option.toggle.name }}" for="__palette_{{ loop.index0 or loop.length }}" hidden>
|
||||
{% include ".icons/" ~ option.toggle.icon ~ ".svg" %}
|
||||
</label>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</form>
|
||||
{% endif %}
|
||||
{% if config.extra.alternate %}
|
||||
<div class="md-header__option">
|
||||
<div class="md-select">
|
||||
{% set icon = config.theme.icon.alternate or "material/translate" %}
|
||||
<button class="md-header__button md-icon" aria-label="{{ lang.t('select.language.title') }}">
|
||||
{% include ".icons/" ~ icon ~ ".svg" %}
|
||||
</button>
|
||||
<div class="md-select__inner">
|
||||
<ul class="md-select__list">
|
||||
{% for alt in config.extra.alternate %}
|
||||
<li class="md-select__item">
|
||||
<a href="{{ alt.link | url }}" hreflang="{{ alt.lang }}" class="md-select__link">
|
||||
{{ alt.name }}
|
||||
</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if config.repo_url %}
|
||||
<div class="md-header__source">
|
||||
{% include "partials/source.html" %}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if "search" in config["plugins"] %}
|
||||
<label class="md-header__button md-icon" for="__search">
|
||||
{% include ".icons/material/magnify.svg" %}
|
||||
</label>
|
||||
{% include "partials/search.html" %}
|
||||
{% endif %}
|
||||
</nav>
|
||||
{% if "navigation.tabs.sticky" in features %}
|
||||
{% if "navigation.tabs" in features %}
|
||||
{% include "partials/tabs.html" %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</header>
|
|
@ -67,7 +67,3 @@ docker context create <domain> --docker "host=ssh://<user>@<domain>:<port>"
|
|||
## Command-line flag handling is weird?
|
||||
|
||||
Unfortunately, there is a limitation in our underlying command-line library implementation for `abra` ([ref](https://github.com/urfave/cli/issues/1113)) (and more fundamentally in the design of flags in the Go programming language itself ([ref](https://utcc.utoronto.ca/~cks/space/blog/programming/GoFlagUIImportance))). We're aiming to work with upstream to resolve the flag handling but this it is not yet clear when this will be resolved.
|
||||
|
||||
## Why can't `abra` support multiline definitions in the `.env` files?
|
||||
|
||||
We're sorry, it's an issue with an upstream dependency. See [`#291`](https://git.coopcloud.tech/coop-cloud/organising/issues/291) for more.
|
||||
|
|
|
@ -443,22 +443,3 @@ If you want to get the highest rating on SSL certs, you can use the following tr
|
|||
```
|
||||
|
||||
See [this PR](https://git.coopcloud.tech/coop-cloud/traefik/pulls/8/files) for the technical details
|
||||
|
||||
## Tweaking secret generation length
|
||||
|
||||
It is possible to tell `abra` which length it should generate secrets with from your recipe config.
|
||||
|
||||
You do this by adding a inline comment to the secret definition in the `.env.sample` / `.env` file.
|
||||
|
||||
Here are examples from the gitea recipe:
|
||||
|
||||
```
|
||||
SECRET_INTERNAL_TOKEN_VERSION=v1 # length=105
|
||||
SECRET_JWT_SECRET_VERSION=v1 # length=43
|
||||
SECRET_SECRET_KEY_VERSION=v1 # length=64
|
||||
```
|
||||
|
||||
When using this length specifier, `abra` will not use the "easy to remember
|
||||
word" style generator but instead a string of characters to match the exact
|
||||
length. This can be useful if you have to generate "key" style values instead
|
||||
of passwords which admins have to type out in database shells.
|
||||
|
|
|
@ -86,7 +86,7 @@ Then, tell your collaborators (e.g. in the repository's `README.md`), to run `ma
|
|||
|
||||
If you're on an environment where it's hard to run Docker, or command-line programs in general, you might want to install `abra` on a server instead of your local work station.
|
||||
|
||||
To install `abra` the same server where you'll be hosting your apps, just follow [getting started guide](/operators/tutorial#deploy-your-first-app) as normal except for one difference. Instead of providing your SSH connection details when you run `abra server add ...`, just pass `--local`.
|
||||
To install `abra` on a different server than you'll be hosting your apps, just follow [getting started guide](/operators/tutorial#deploy-your-first-app) as normal except for one difference. Instead of providing your SSH connection details when you run `abra server add ...`, just pass `--local`.
|
||||
|
||||
```
|
||||
abra server add --local
|
||||
|
@ -228,23 +228,3 @@ If you want to teach `abra` how to support your favourite server hosting provide
|
|||
`abra` supports creating, listing and removing DNS entries if the 3rd party integration supports it.
|
||||
|
||||
If you want to teach `abra` how to support your favourite server hosting provider, we'd glady accept patches.
|
||||
|
||||
## Running an offline coop-cloud server
|
||||
|
||||
You may want to run a coop-cloud directly on your device (or in a VM or machine on your LAN), whether that's for testing a recipe or to run coop-cloud apps outside of the cloud ;-)
|
||||
In that case you might simply add some names to `/etc/hosts` (e.g `127.0.0.1 myapp.localhost`), or configure them on a local DNS server - which means `traefik` won't be able to use `letsencrypt` to generate and verify SSL certificates. Here's what you can do instead:
|
||||
1. In your traefik .env file, edit/uncomment the following lines:
|
||||
```
|
||||
LETS_ENCRYPT_ENV=staging
|
||||
WILDCARDS_ENABLED=1
|
||||
SECRET_WILDCARD_CERT_VERSION=v1
|
||||
SECRET_WILDCARD_KEY_VERSION=v1
|
||||
COMPOSE_FILE="$COMPOSE_FILE:compose.wildcard.yml"
|
||||
```
|
||||
2. Generate a self-signed certificate using the [command listed here](https://letsencrypt.org/docs/certificates-for-localhost/#making-and-trusting-your-own-certificates). Unless using `localhost` you may want to edit that where it appears in the command, and/or add multiple (sub)domains to the certificate e.g: `subjectAltName=DNS:localhost,DNS:myapp.localhost`
|
||||
3. Run these commands:
|
||||
```
|
||||
abra app secret insert localhost ssl_cert v1 "$(cat localhost.crt)"
|
||||
abra app secret insert localhost ssl_key v1 "$(cat localhost.key)"
|
||||
```
|
||||
4. Re-deploy `traefik` with `--force` and voila!
|
||||
|
|
|
@ -3,3 +3,40 @@
|
|||
--md-primary-fg-color--light: #202674;
|
||||
--md-primary-fg-color--dark: #ee4a33;
|
||||
}
|
||||
|
||||
/* Navbar styling tweaks */
|
||||
|
||||
.md-search__form {
|
||||
background-color: rgba(0, 0, 255, 0.20);
|
||||
}
|
||||
|
||||
.md-tabs {
|
||||
background-color: #6A9CFF;
|
||||
}
|
||||
|
||||
.md-tabs__item {
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
|
||||
/* Footer styling tweaks */
|
||||
.md-footer {
|
||||
background-color: #485FC7;
|
||||
}
|
||||
|
||||
.md-footer-meta {
|
||||
background-color: rgba(0, 0, 0, 0.45);
|
||||
}
|
||||
|
||||
/* Mobile sidebar styling tweaks */
|
||||
.md-nav--primary .md-nav__title ~ .md-nav__list {
|
||||
background-color: #D7E4FF !important;
|
||||
}
|
||||
|
||||
.md-nav__source {
|
||||
background-color: #A7C5FF !important;
|
||||
}
|
||||
|
||||
label.md-nav__title[for="__drawer"] {
|
||||
background-color: #6A9CFF !important;
|
||||
}
|
||||
|
|
|
@ -17,6 +17,7 @@ theme:
|
|||
accent: purple
|
||||
logo: img/favicon.ico
|
||||
favicon: img/favicon.ico
|
||||
custom_dir: custom_theme/
|
||||
|
||||
copyright: Copyleft 🄯 2022 Co-op Cloud
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
mkdocs-awesome-pages-plugin==2.7.0
|
||||
mkdocs-material-extensions==1.0.3
|
||||
mkdocs-material==8.2.5
|
||||
mkdocs-material==8.2.1
|
||||
mkdocs==1.2.3
|
||||
|
|
Loading…
Reference in New Issue