mirror of
https://github.com/lennart-k/rustical.git
synced 2025-12-13 21:42:34 +00:00
First attempt at some documentation
This commit is contained in:
18
docs/index.md
Normal file
18
docs/index.md
Normal file
@@ -0,0 +1,18 @@
|
||||
# RustiCal
|
||||
|
||||
a CalDAV/CardDAV server
|
||||
|
||||
!!! warning
|
||||
RustiCal is **not production-ready!**
|
||||
There can be changes to the database without migrations and there's no guarantee that all endpoints are secured yet.
|
||||
If you still want to play around with it in its current state, absolutely feel free to do so but know that not even I use it productively yet.
|
||||
|
||||
## Features
|
||||
|
||||
- easy to backup, everything saved in one SQLite database
|
||||
- [WebDAV Push](https://github.com/bitfireAT/webdav-push/) support, so near-instant synchronisation to DAVx5
|
||||
- lightweight (the container image contains only one binary)
|
||||
- adequately fast (I'd say blazingly fast™ :fire: if I did the benchmarks to back that claim up)
|
||||
- deleted calendars are recoverable
|
||||
- Nextcloud login flow (In DAVx5 you can login through the Nextcloud flow and automatically generate an app token)
|
||||
- [OpenID Connect](setup/oidc.md) support (with option to disable password login)
|
||||
39
docs/installation.md
Normal file
39
docs/installation.md
Normal file
@@ -0,0 +1,39 @@
|
||||
# Installation
|
||||
|
||||
## Manual
|
||||
|
||||
```sh
|
||||
cargo install --locked --git https://github.com/lennart-k/rustical
|
||||
```
|
||||
|
||||
## Docker
|
||||
|
||||
```sh
|
||||
docker run \
|
||||
-p 4000:4000 \
|
||||
-v YOUR_DATA_DIR:/var/lib/rustical/ \
|
||||
-v YOUR_CONFIG_TOML:/etc/rustical/config.toml \
|
||||
-v YOUR_PRINCIPALS_TOML:/etc/rustical/principals.toml \
|
||||
ghcr.io/lennart-k/rustical
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
### TOML
|
||||
|
||||
### Environment variables
|
||||
|
||||
The options in `config.toml` can also be configured using environment variables. Names translate the following:
|
||||
|
||||
```toml title="config.toml"
|
||||
[data_store.toml]
|
||||
path = "asd"
|
||||
```
|
||||
|
||||
becomes `RUSTICAL_DATA_STORE__TOML__PATH`.
|
||||
Every variable is
|
||||
|
||||
- uppercase
|
||||
- prefixed by `RUSTICAL_`
|
||||
- Dots become `__`
|
||||
- Arrays are JSON-encoded
|
||||
3
docs/rfcs.md
Normal file
3
docs/rfcs.md
Normal file
@@ -0,0 +1,3 @@
|
||||
# RFCs
|
||||
|
||||
Collection of RFCs relevant to this project
|
||||
34
docs/setup/oidc.md
Normal file
34
docs/setup/oidc.md
Normal file
@@ -0,0 +1,34 @@
|
||||
# OpenID Connect
|
||||
|
||||
You can set up RustiCal with an OpenID Connect identity provider
|
||||
|
||||
## Example: Authelia
|
||||
|
||||
```toml title="RustiCal configuration"
|
||||
[frontend.oidc]
|
||||
name = "Authelia"
|
||||
issuer = "https://auth.example.com"
|
||||
client_id = "rustical"
|
||||
client_secret = "secret..."
|
||||
claim_userid = "preferred_username" # (1)!
|
||||
scopes = ["openid", "profile", "groups"]
|
||||
require_group = "app/rustical" # (2)!
|
||||
allow_sign_up = false
|
||||
```
|
||||
|
||||
1. Can be either `preferred_username` or `sub`
|
||||
2. Optional: You can require a user to be in a certain group to use RustiCal
|
||||
|
||||
```yaml title="Authelia configuration"
|
||||
identity_providers:
|
||||
oidc:
|
||||
clients:
|
||||
- client_id: rustical
|
||||
client_secret: secret...
|
||||
public: false
|
||||
consent_mode: implicit
|
||||
scopes: [openid, profile, groups]
|
||||
token_endpoint_auth_method: client_secret_basic
|
||||
redirect_uris:
|
||||
- https://rustical.example.com/frontend/login/oidc/callback
|
||||
```
|
||||
Reference in New Issue
Block a user