app: Conduit
This commit is contained in:
parent
e705fa05fc
commit
8377c72d60
|
@ -15,6 +15,7 @@ This is the official repository for the Tipi App Store. It contains all the apps
|
|||
- [Chatpad AI](https://github.com/deiucanta/chatpad) - Not just another ChatGPT user-interface!
|
||||
- [Code-Server](https://github.com/coder/code-server) - Web VS Code
|
||||
- [Codex.Docs](https://github.com/codex-team/codex.docst) - Free Docs app powered by Editor.js ecosystem.
|
||||
- [Conduit](https://gitlab.com/famedly/conduit) - Conduit is a simple, fast and reliable chat server written in Rust
|
||||
- [DailyTXT](https://github.com/PhiTux/DailyTxT) - Encrypted Diary Web-App
|
||||
- [Dash.](https://github.com/MauriceNino/dashdot) - A simple, modern server dashboard, primarily used by smaller private server
|
||||
- [Deluge](https://github.com/linuxserver/docker-deluge) - Deluge is a lightweight, Free Software, cross-platform BitTorrent client
|
||||
|
|
54
apps/matrix-conduit/config.json
Normal file
54
apps/matrix-conduit/config.json
Normal file
|
@ -0,0 +1,54 @@
|
|||
{
|
||||
"$schema": "../schema.json",
|
||||
"name": "Conduit",
|
||||
"port": 6167,
|
||||
"available": true,
|
||||
"exposable": true,
|
||||
"no_gui": true,
|
||||
"id": "matrix-conduit",
|
||||
"tipi_version": 1,
|
||||
"version": "0.5.0",
|
||||
"categories": ["social"],
|
||||
"description": "Conduit is a fast Matrix homeserver that’s easy to set up and just works. You can install it on a mini-computer like the Raspberry Pi to host Matrix for your family, friends or company.",
|
||||
"short_desc": "Conduit is a simple, fast and reliable chat server written in Rust",
|
||||
"author": "Timo Kösters",
|
||||
"source": "https://gitlab.com/famedly/conduit",
|
||||
"website": "https://matrix.org/docs/projects/server/conduit",
|
||||
"form_fields": [
|
||||
{
|
||||
"type": "boolean",
|
||||
"label": "Allow Registration",
|
||||
"hint": "WARNING! First user will be admin",
|
||||
"required": false,
|
||||
"env_variable": "ALLOW_REGISTRATION"
|
||||
},
|
||||
{
|
||||
"type": "boolean",
|
||||
"label": "Allow Federation",
|
||||
"required": false,
|
||||
"env_variable": "ALLOW_FEDERATION"
|
||||
},
|
||||
{
|
||||
"type": "array",
|
||||
"label": "Trusted Servers",
|
||||
"hint": "[\"matrix.org\"]",
|
||||
"required": false,
|
||||
"env_variable": "TRUSTED_SERVERS"
|
||||
},
|
||||
{
|
||||
"type": "number",
|
||||
"label": "Max request size",
|
||||
"hint": "In bytes, for example 20000000",
|
||||
"required": false,
|
||||
"env_variable": "MAX_REQUEST_SIZE"
|
||||
},
|
||||
{
|
||||
"type": "text",
|
||||
"label": "Loggin Level",
|
||||
"hint": "Available levels: error, warn, info, debug, trace",
|
||||
"placeholder": "-warn,rocket=off,_=off,sled=off",
|
||||
"required": false,
|
||||
"env_variable": "LOG"
|
||||
}
|
||||
]
|
||||
}
|
50
apps/matrix-conduit/docker-compose.yml
Normal file
50
apps/matrix-conduit/docker-compose.yml
Normal file
|
@ -0,0 +1,50 @@
|
|||
version: "3.7"
|
||||
|
||||
services:
|
||||
homeserver:
|
||||
container_name: matrix
|
||||
image: matrixconduit/matrix-conduit:v0.5.0
|
||||
ports:
|
||||
- ${APP_PORT}:6167
|
||||
environment:
|
||||
CONDUIT_SERVER_NAME: ${APP_DOMAIN}
|
||||
CONDUIT_DATABASE_PATH: /var/lib/matrix-conduit/
|
||||
CONDUIT_DATABASE_BACKEND: rocksdb
|
||||
CONDUIT_PORT: 6167
|
||||
CONDUIT_MAX_REQUEST_SIZE: ${MAX_REQUEST_SIZE:-20000000}
|
||||
CONDUIT_ALLOW_REGISTRATION: ${ALLOW_REGISTRATION:-false}
|
||||
CONDUIT_ALLOW_FEDERATION: ${ALLOW_FEDERATION:-false}
|
||||
CONDUIT_TRUSTED_SERVERS: ${TRUSTED_SERVERS:-[]}
|
||||
CONDUIT_LOG: ${LOG:-warn,rocket=off,_=off,sled=off}
|
||||
CONDUIT_ADDRESS: 0.0.0.0
|
||||
CONDUIT_CONFIG: '' # Ignore this
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ${APP_DATA_DIR}/data:/var/lib/matrix-conduit/
|
||||
networks:
|
||||
- tipi_main_network
|
||||
labels:
|
||||
traefik.enable: ${APP_EXPOSED}
|
||||
traefik.http.routers.matrix.rule: Host(`${APP_DOMAIN}`)
|
||||
traefik.http.routers.matrix.entrypoints: websecure
|
||||
traefik.http.routers.matrix.service: matrix
|
||||
traefik.http.routers.matrix.tls.certresolver: myresolver
|
||||
traefik.http.services.matrix.loadbalancer.server.port: 6167
|
||||
|
||||
well-known:
|
||||
container_name: matrix-well-known
|
||||
build:
|
||||
context: nginx
|
||||
dockerfile: Dockerfile
|
||||
environment:
|
||||
APP_DOMAIN: ${APP_DOMAIN}
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- tipi_main_network
|
||||
labels:
|
||||
traefik.enable: ${APP_EXPOSED}
|
||||
traefik.http.routers.matrix-well-knows.rule: Host(`${APP_DOMAIN}`) && PathPrefix(`/.well-known/matrix`)
|
||||
traefik.http.routers.matrix-well-knows.entrypoints: websecure
|
||||
traefik.http.routers.matrix-well-knows.service: matrix-well-knows
|
||||
traefik.http.routers.matrix-well-knows.tls.certresolver: myresolver
|
||||
traefik.http.services.matrix-well-knows.loadbalancer.server.port: 80
|
82
apps/matrix-conduit/metadata/description.md
Normal file
82
apps/matrix-conduit/metadata/description.md
Normal file
|
@ -0,0 +1,82 @@
|
|||
# Conduit
|
||||
### A Matrix homeserver written in Rust
|
||||
|
||||
#### What is Matrix?
|
||||
[Matrix](https://matrix.org) is an open network for secure and decentralized
|
||||
communication. Users from every Matrix homeserver can chat with users from all
|
||||
other Matrix servers. You can even use bridges (also called Matrix appservices)
|
||||
to communicate with users outside of Matrix, like a community on Discord.
|
||||
|
||||
#### What is the goal?
|
||||
|
||||
An efficient Matrix homeserver that's easy to set up and just works. You can install
|
||||
it on a mini-computer like the Raspberry Pi to host Matrix for your family,
|
||||
friends or company.
|
||||
|
||||
#### Can I try it out?
|
||||
|
||||
Yes! You can test our Conduit instance by opening a Matrix client (<https://app.element.io> or Element Android for
|
||||
example) and registering on the `conduit.rs` homeserver.
|
||||
|
||||
*Registration is currently disabled because of scammers. For an account please
|
||||
message us (see contact section below).*
|
||||
|
||||
Server hosting for conduit.rs is donated by the Matrix.org Foundation.
|
||||
|
||||
#### What is the current status?
|
||||
|
||||
Conduit is Beta, meaning you can join and participate in most
|
||||
Matrix rooms, but not all features are supported and you might run into bugs
|
||||
from time to time.
|
||||
|
||||
There are still a few important features missing:
|
||||
|
||||
- E2EE emoji comparison over federation (E2EE chat works)
|
||||
- Outgoing read receipts, typing, presence over federation (incoming works)
|
||||
|
||||
Check out the [Conduit 1.0 Release Milestone](https://gitlab.com/famedly/conduit/-/milestones/3).
|
||||
|
||||
#### How can I deploy my own?
|
||||
|
||||
- Simple install (this was tested the most): [DEPLOY.md](DEPLOY.md)
|
||||
- Debian package: [debian/README.Debian](debian/README.Debian)
|
||||
- Nix/NixOS: [nix/README.md](nix/README.md)
|
||||
- Docker: [docker/README.md](docker/README.md)
|
||||
|
||||
If you want to connect an Appservice to Conduit, take a look at [APPSERVICES.md](APPSERVICES.md).
|
||||
|
||||
#### How can I contribute?
|
||||
|
||||
1. Look for an issue you would like to work on and make sure it's not assigned
|
||||
to other users
|
||||
2. Ask someone to assign the issue to you (comment on the issue or chat in
|
||||
[#conduit:fachschaften.org](https://matrix.to/#/#conduit:fachschaften.org))
|
||||
3. Fork the repo and work on the issue.[#conduit:fachschaften.org](https://matrix.to/#/#conduit:fachschaften.org) is happy to help :)
|
||||
4. Submit a MR
|
||||
|
||||
#### Thanks to
|
||||
|
||||
Thanks to FUTO, Famedly, Prototype Fund (DLR and German BMBF) and all individuals for financially supporting this project.
|
||||
|
||||
Thanks to the contributors to Conduit and all libraries we use, for example:
|
||||
|
||||
- Ruma: A clean library for the Matrix Spec in Rust
|
||||
- axum: A modular web framework
|
||||
|
||||
#### Contact
|
||||
|
||||
If you run into any question, feel free to
|
||||
- Ask us in `#conduit:fachschaften.org` on Matrix
|
||||
- Write an E-Mail to `conduit@koesters.xyz`
|
||||
- Send an direct message to `timo@fachschaften.org` on Matrix
|
||||
- [Open an issue on GitLab](https://gitlab.com/famedly/conduit/-/issues/new)
|
||||
|
||||
#### Donate
|
||||
|
||||
Liberapay: <https://liberapay.com/timokoesters/>\
|
||||
Bitcoin: `bc1qnnykf986tw49ur7wx9rpw2tevpsztvar5x8w4n`
|
||||
|
||||
#### Logo
|
||||
|
||||
Lightning Bolt Logo: https://github.com/mozilla/fxemoji/blob/gh-pages/svgs/nature/u26A1-bolt.svg \
|
||||
Logo License: https://github.com/mozilla/fxemoji/blob/gh-pages/LICENSE.md
|
BIN
apps/matrix-conduit/metadata/logo.jpg
Normal file
BIN
apps/matrix-conduit/metadata/logo.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 16 KiB |
4
apps/matrix-conduit/nginx/Dockerfile
Normal file
4
apps/matrix-conduit/nginx/Dockerfile
Normal file
|
@ -0,0 +1,4 @@
|
|||
FROM nginx:1.24-alpine
|
||||
|
||||
RUN mkdir /etc/nginx/templates
|
||||
COPY matrix.conf.template /etc/nginx/templates
|
19
apps/matrix-conduit/nginx/matrix.conf.template
Normal file
19
apps/matrix-conduit/nginx/matrix.conf.template
Normal file
|
@ -0,0 +1,19 @@
|
|||
server {
|
||||
server_name ${APP_DOMAIN};
|
||||
listen 80 default_server;
|
||||
|
||||
location /.well-known/matrix/server {
|
||||
return 200 '{"m.server": "${APP_DOMAIN}:443"}';
|
||||
types { } default_type "application/json; charset=utf-8";
|
||||
}
|
||||
|
||||
location /.well-known/matrix/client {
|
||||
return 200 '{"m.homeserver": {"base_url": "https://${APP_DOMAIN}"}}';
|
||||
types { } default_type "application/json; charset=utf-8";
|
||||
add_header "Access-Control-Allow-Origin" *;
|
||||
}
|
||||
|
||||
location / {
|
||||
return 404;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user