forked from Deuxfleurs/nixcfg
Compare commits
32 commits
dathomir-u
...
main
Author | SHA1 | Date | |
---|---|---|---|
d568dea939 | |||
|
c6ce1628f9 | ||
|
10d9528d91 | ||
|
8b10a0f539 | ||
|
e79e5470fb | ||
e344a1d560 | |||
a560763a41 | |||
aac2019d27 | |||
fabf31a720 | |||
c044078a6e | |||
ac4ca90eca | |||
e204c3e563 | |||
e81a6ccff0 | |||
8ca33f3136 | |||
9742ec34da | |||
64195db879 | |||
dabfbc981b | |||
8f4c78f39c | |||
ca01149e16 | |||
093951af05 | |||
e83f12f6a2 | |||
6c88813e8d | |||
|
7c9fed9e99 | ||
|
aebc4b900f | ||
|
2c43fe0fb4 | ||
|
b6c083cf93 | ||
0cc08a1f2b | |||
1bcfc26c62 | |||
47d94b1ad0 | |||
62ff09234d | |||
98feb96d27 | |||
b89b625f46 |
34 changed files with 208 additions and 66 deletions
32
cluster/prod/app/backup/README.md
Normal file
32
cluster/prod/app/backup/README.md
Normal file
|
@ -0,0 +1,32 @@
|
|||
## Pour remonter locement un backup de PSQL fait par Nomad (backup-weekly.hcl)
|
||||
|
||||
```bash
|
||||
export AWS_BUCKET=backups-pgbasebackup
|
||||
export AWS_ENDPOINT=s3.deuxfleurs.shirokumo.net
|
||||
export AWS_ACCESS_KEY_ID=$(consul kv get "secrets/postgres/backup/aws_access_key_id")
|
||||
export AWS_SECRET_ACCESS_KEY=$(consul kv get secrets/postgres/backup/aws_secret_access_key)
|
||||
export CRYPT_PUBLIC_KEY=$(consul kv get secrets/postgres/backup/crypt_public_key)
|
||||
```
|
||||
|
||||
Et voilà le travail :
|
||||
|
||||
```bash
|
||||
$ aws s3 --endpoint https://$AWS_ENDPOINT ls
|
||||
2022-04-14 17:00:50 backups-pgbasebackup
|
||||
|
||||
$ aws s3 --endpoint https://$AWS_ENDPOINT ls s3://backups-pgbasebackup
|
||||
PRE 2024-07-28 00:00:36.140539/
|
||||
PRE 2024-08-04 00:00:21.291551/
|
||||
PRE 2024-08-11 00:00:26.589762/
|
||||
PRE 2024-08-18 00:00:40.873939/
|
||||
PRE 2024-08-25 01:03:54.672763/
|
||||
PRE 2024-09-01 00:00:20.019605/
|
||||
PRE 2024-09-08 00:00:16.969740/
|
||||
PRE 2024-09-15 00:00:37.951459/
|
||||
PRE 2024-09-22 00:00:21.030452/
|
||||
|
||||
$ aws s3 --endpoint https://$AWS_ENDPOINT ls "s3://backups-pgbasebackup/2024-09-22 00:00:21.030452/"
|
||||
2024-09-22 03:23:28 623490 backup_manifest
|
||||
2024-09-22 03:25:32 6037121487 base.tar.gz
|
||||
2024-09-22 03:25:33 19948939 pg_wal.tar.gz
|
||||
```
|
|
@ -44,6 +44,8 @@ if not client.bucket_exists(bucket):
|
|||
abort(f"Bucket {bucket} does not exist or its access is forbidden, aborting")
|
||||
|
||||
# Perform the backup locally
|
||||
# Via command-line:
|
||||
# pg_basebackup --host=localhost --username=$PSQL_USER --pgdata=. --format=tar --wal-method=stream --gzip --compress=6 --progress --max-rate=5M
|
||||
try:
|
||||
ret = subprocess.run(["pg_basebackup",
|
||||
f"--host={psql_host}",
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
, buildNpmPackage
|
||||
, fetchFromGitHub
|
||||
, fetchzip
|
||||
|
||||
, nodejs
|
||||
|
||||
|
@ -30,8 +31,8 @@
|
|||
hash = "sha256-BZdExj2q/bqUD3k9uluOot2dlrWKA+vpad49EdgXKww=";
|
||||
};
|
||||
v7 = {
|
||||
rev = "ba82142ff242ce385804bcb4287126de52d329f3";
|
||||
hash = "sha256-3WX3dTWJoeApon1AH3XplBIvEosVNzchkjgi2C808B4=";
|
||||
rev = "e1267803ea749cd93e9d5f81438011ea620d04af";
|
||||
hash = "sha256-iIds0GnCHAyeIEdSD4aCCgDtnnwARh3NE470CywseS0=";
|
||||
};
|
||||
};
|
||||
mkOnlyOffice = {
|
||||
|
@ -40,6 +41,14 @@
|
|||
pname = "${pname}-onlyoffice";
|
||||
inherit version;
|
||||
|
||||
x2t = let
|
||||
version = "v7.3+1";
|
||||
in fetchzip {
|
||||
url = "https://github.com/cryptpad/onlyoffice-x2t-wasm/releases/download/${version}/x2t.zip";
|
||||
hash = "sha256-d5raecsTOflo0UpjSEZW5lker4+wdkTb6IyHNq5iBg8=";
|
||||
stripRoot = false;
|
||||
};
|
||||
|
||||
srcs = lib.mapAttrsToList (version: { rev, hash ? lib.fakeHash }: fetchFromGitHub {
|
||||
name = "${final.pname}-${version}-source";
|
||||
owner = "cryptpad";
|
||||
|
@ -57,20 +66,21 @@
|
|||
(version: "cp -Tr ${final.pname}-${version}-source $out/${version}")
|
||||
(builtins.attrNames onlyOfficeVersions)
|
||||
)}
|
||||
cp -Tr $x2t $out/x2t
|
||||
'';
|
||||
});
|
||||
in buildNpmPackage rec {
|
||||
pname = "cryptpad";
|
||||
version = "2024.3.1";
|
||||
version = "2024.9.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cryptpad";
|
||||
repo = "cryptpad";
|
||||
rev = version;
|
||||
hash = "sha256-kXghuktaKicFOz98Siy/OjJ9rlgy6C2BTKkD2OFLE+k=";
|
||||
hash = "sha256-OUtWaDVLRUbKS0apwY0aNq4MalGFv+fH9VA7LvWWYRs=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-fjImdtv0bwgdDvl/BXV0DesreOAW2u8HsNqJ13hrJMw=";
|
||||
npmDepsHash = "sha256-pK0b7q1kJja9l8ANwudbfo3jpldwuO56kuulS8X9A5s=";
|
||||
|
||||
inherit nodejs;
|
||||
|
||||
|
@ -107,6 +117,10 @@ in buildNpmPackage rec {
|
|||
runHook postInstall
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
inherit onlyOffice;
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Collaborative office suite, end-to-end encrypted and open-source.";
|
||||
homepage = "https://cryptpad.org";
|
||||
|
|
|
@ -5,8 +5,10 @@
|
|||
pkgs = import sources.nixpkgs {};
|
||||
in rec {
|
||||
cryptpad = pkgs.callPackage ./default.nix {};
|
||||
docker = pkgs.callPackage ./docker.nix {
|
||||
docker = import ./docker.nix {
|
||||
inherit pkgs;
|
||||
inherit name tag;
|
||||
inherit cryptpad;
|
||||
withOnlyOffice = true;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -2,9 +2,9 @@
|
|||
"pins": {
|
||||
"nixpkgs": {
|
||||
"type": "Channel",
|
||||
"name": "nixos-23.11",
|
||||
"url": "https://releases.nixos.org/nixos/23.11/nixos-23.11.7237.46397778ef1f/nixexprs.tar.xz",
|
||||
"hash": "00cy8q07diavxb91g7pxl0gqc68s3hzimsggjc9rqyf99h1q9d3r"
|
||||
"name": "nixos-24.05",
|
||||
"url": "https://releases.nixos.org/nixos/24.05/nixos-24.05.5385.1719f27dd95f/nixexprs.tar.xz",
|
||||
"hash": "0f7i315g1z8kjh10hvj2zv7y2vfqxmwvd96hwlcrr8aig6qq5gzm"
|
||||
}
|
||||
},
|
||||
"version": 3
|
||||
|
|
|
@ -188,6 +188,12 @@ module.exports = {
|
|||
* DATABASE VOLUMES
|
||||
* ===================== */
|
||||
|
||||
/*
|
||||
* We need this config entry, else CryptPad will try to mkdir
|
||||
* some stuff into Nix store apparently...
|
||||
*/
|
||||
base: '/mnt/data',
|
||||
|
||||
/*
|
||||
* CryptPad stores each document in an individual file on your hard drive.
|
||||
* Specify a directory where files should be stored.
|
||||
|
|
|
@ -26,7 +26,7 @@ job "cryptpad" {
|
|||
}
|
||||
|
||||
config {
|
||||
image = "kokakiwi/cryptpad:2024.3.1"
|
||||
image = "kokakiwi/cryptpad:2024.9.0"
|
||||
ports = [ "http" ]
|
||||
|
||||
volumes = [
|
||||
|
|
|
@ -6,16 +6,17 @@ services:
|
|||
context: ./jitsi-meet
|
||||
args:
|
||||
# https://github.com/jitsi/jitsi-meet
|
||||
MEET_TAG: stable/jitsi-meet_8252
|
||||
image: superboum/amd64_jitsi_meet:v6
|
||||
MEET_TAG: stable/jitsi-meet_9646
|
||||
NODE_MAJOR_VERSION: 22
|
||||
image: superboum/amd64_jitsi_meet:v7
|
||||
|
||||
jitsi-conference-focus:
|
||||
build:
|
||||
context: ./jitsi-conference-focus
|
||||
args:
|
||||
# https://github.com/jitsi/jicofo
|
||||
JICOFO_TAG: stable/jitsi-meet_8252
|
||||
image: superboum/amd64_jitsi_conference_focus:v10
|
||||
JICOFO_TAG: stable/jitsi-meet_9646
|
||||
image: superboum/amd64_jitsi_conference_focus:v11
|
||||
|
||||
jitsi-videobridge:
|
||||
build:
|
||||
|
@ -23,13 +24,13 @@ services:
|
|||
args:
|
||||
# https://github.com/jitsi/jitsi-videobridge
|
||||
# note: JVB is not tagged with non-stable tags
|
||||
JVB_TAG: stable/jitsi-meet_8252
|
||||
image: superboum/amd64_jitsi_videobridge:v21
|
||||
JVB_TAG: stable/jitsi-meet_9646
|
||||
image: superboum/amd64_jitsi_videobridge:v22
|
||||
|
||||
jitsi-xmpp:
|
||||
build:
|
||||
context: ./jitsi-xmpp
|
||||
args:
|
||||
MEET_TAG: stable/jitsi-meet_8252
|
||||
PROSODY_VERSION: 1nightly191-1~bookworm
|
||||
image: superboum/amd64_jitsi_xmpp:v11
|
||||
MEET_TAG: stable/jitsi-meet_9646
|
||||
PROSODY_VERSION: 0.12.3-1
|
||||
image: superboum/amd64_jitsi_xmpp:v12
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
FROM debian:bookworm AS builder
|
||||
|
||||
ARG NODE_MAJOR_VERSION
|
||||
RUN apt-get update && \
|
||||
apt-get install -y curl && \
|
||||
curl -sL https://deb.nodesource.com/setup_19.x | bash - && \
|
||||
curl -sL https://deb.nodesource.com/setup_${NODE_MAJOR_VERSION}.x | bash - && \
|
||||
apt-get install -y git nodejs make git unzip
|
||||
|
||||
ARG MEET_TAG
|
||||
|
|
|
@ -6,7 +6,7 @@ if [ -z "${JITSI_NAT_LOCAL_IP}" ]; then
|
|||
fi
|
||||
|
||||
if [ -z "${JITSI_NAT_PUBLIC_IP}" ]; then
|
||||
JITSI_NAT_PUBLIC_IP=$(curl https://ifconfig.me)
|
||||
JITSI_NAT_PUBLIC_IP=$(curl -4 https://ifconfig.me)
|
||||
fi
|
||||
|
||||
echo "NAT config: ${JITSI_NAT_LOCAL_IP} -> ${JITSI_NAT_PUBLIC_IP}"
|
||||
|
|
|
@ -13,8 +13,8 @@ RUN apt-get update && \
|
|||
apt-get install -y wget gnupg2 extrepo && \
|
||||
extrepo enable prosody && \
|
||||
apt-get update && \
|
||||
apt-cache show prosody-0.12 && \
|
||||
apt-get install -y prosody-0.12=${PROSODY_VERSION} lua-event
|
||||
apt-cache show prosody && \
|
||||
apt-get install -y prosody=${PROSODY_VERSION} lua-event
|
||||
|
||||
RUN mkdir -p /usr/local/share/ca-certificates/ && \
|
||||
ln -sf \
|
||||
|
|
|
@ -81,6 +81,12 @@ http {
|
|||
alias /srv/jitsi-meet/$1/$2;
|
||||
}
|
||||
|
||||
# Disallow robots indexation
|
||||
location = /robots.txt {
|
||||
add_header Content-Type text/plain;
|
||||
return 200 "User-agent: *\nDisallow: /\n";
|
||||
}
|
||||
|
||||
# not used yet VVV
|
||||
# colibri (JVB) websockets
|
||||
#location ~ ^/colibri-ws/([a-zA-Z0-9-\.]+)/(.*) {
|
||||
|
@ -92,12 +98,12 @@ http {
|
|||
#}
|
||||
|
||||
|
||||
location ~ "2daut2wank2|2duat2wank|2duat2wank0|2duat2wank1|2duat2wank2|2duat2wank3|2duatr2wank|2duatr2wank0|2duatr2wank1|2duatr2wank2|2wank2daut2|daut1|duat2wank|duat2wank2|duatr2wank2|prettypanties|slutgfs|wabk2daugther|wank2daugther|wank2daut|wank2daut2|wank2daut3|wankwatch" {
|
||||
location ~* {{ key "secrets/jitsi/blacklist_regex" }} {
|
||||
return 302 https://www.service-public.fr/particuliers/vosdroits/R17674;
|
||||
}
|
||||
|
||||
location = /http-bind {
|
||||
if ($args ~ "2daut2wank2|2duat2wank|2duat2wank0|2duat2wank1|2duat2wank2|2duat2wank3|2duatr2wank|2duatr2wank0|2duatr2wank1|2duatr2wank2|2wank2daut2|daut1|duat2wank|duat2wank2|duatr2wank2|prettypanties|slutgfs|wabk2daugther|wank2daugther|wank2daut|wank2daut2|wank2daut3|wankwatch") {
|
||||
if ($args ~* {{ key "secrets/jitsi/blacklist_regex" }}) {
|
||||
return 403 'forbidden';
|
||||
}
|
||||
|
||||
|
|
|
@ -115,7 +115,8 @@ videobridge {
|
|||
# (e.g. health or debug stats)
|
||||
private {
|
||||
# See JettyBundleActivatorConfig in Jicoco for values
|
||||
host = 127.0.0.1
|
||||
host = 0.0.0.0
|
||||
port = {{ env "NOMAD_PORT_management_port" }}
|
||||
}
|
||||
}
|
||||
octo {
|
||||
|
|
|
@ -20,7 +20,7 @@ job "jitsi" {
|
|||
task "xmpp" {
|
||||
driver = "docker"
|
||||
config {
|
||||
image = "superboum/amd64_jitsi_xmpp:v11"
|
||||
image = "superboum/amd64_jitsi_xmpp:v12"
|
||||
ports = [ "bosh_port", "xmpp_port" ]
|
||||
network_mode = "host"
|
||||
volumes = [
|
||||
|
@ -101,7 +101,7 @@ EOF
|
|||
task "front" {
|
||||
driver = "docker"
|
||||
config {
|
||||
image = "superboum/amd64_jitsi_meet:v6"
|
||||
image = "superboum/amd64_jitsi_meet:v7"
|
||||
network_mode = "host"
|
||||
ports = [ "https_port" ]
|
||||
volumes = [
|
||||
|
@ -168,7 +168,7 @@ EOF
|
|||
task "jicofo" {
|
||||
driver = "docker"
|
||||
config {
|
||||
image = "superboum/amd64_jitsi_conference_focus:v10"
|
||||
image = "superboum/amd64_jitsi_conference_focus:v11"
|
||||
network_mode = "host"
|
||||
volumes = [
|
||||
"secrets/certs/jitsi.crt:/usr/local/share/ca-certificates/jitsi.crt",
|
||||
|
@ -203,14 +203,15 @@ EOF
|
|||
group "data_plane" {
|
||||
network {
|
||||
port "video_port" { static = 8080 }
|
||||
port "management_port" { static = 8000 }
|
||||
}
|
||||
|
||||
task "videobridge" {
|
||||
driver = "docker"
|
||||
config {
|
||||
image = "superboum/amd64_jitsi_videobridge:v21"
|
||||
image = "superboum/amd64_jitsi_videobridge:v22"
|
||||
network_mode = "host"
|
||||
ports = [ "video_port" ]
|
||||
ports = [ "video_port", "management_port" ]
|
||||
ulimit {
|
||||
nofile = "1048576:1048576"
|
||||
nproc = "65536:65536"
|
||||
|
@ -259,9 +260,16 @@ EOF
|
|||
port = "video_port"
|
||||
address_mode = "host"
|
||||
name = "video-jitsi"
|
||||
}
|
||||
|
||||
service {
|
||||
tags = [ "jitsi" ]
|
||||
port = "management_port"
|
||||
address_mode = "host"
|
||||
name = "management-video-jitsi"
|
||||
check {
|
||||
type = "tcp"
|
||||
port = "video_port"
|
||||
port = "management_port"
|
||||
interval = "60s"
|
||||
timeout = "5s"
|
||||
}
|
||||
|
|
|
@ -52,7 +52,7 @@ But maybe this value is deprecated: the check is still here but it is not used a
|
|||
start a maintainance container
|
||||
|
||||
```
|
||||
docker run --rm -it -v `pwd`/prosody/certs/:/var/lib/prosody/ -v `pwd`/prosody/prosody.cfg.lua:/etc/prosody/prosody.cfg.lua:ro --user root superboum/amd64_jitsi_xmpp:v11 bash
|
||||
docker run --rm -it -v `pwd`/prosody/certs/:/var/lib/prosody/ -v `pwd`/prosody/prosody.cfg.lua:/etc/prosody/prosody.cfg.lua:ro --user root superboum/amd64_jitsi_xmpp:v12 bash
|
||||
```
|
||||
|
||||
then generate certificates from inside this container
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
version: '3.4'
|
||||
services:
|
||||
jitsi-xmpp:
|
||||
image: superboum/amd64_jitsi_xmpp:v11
|
||||
image: superboum/amd64_jitsi_xmpp:v12
|
||||
volumes:
|
||||
- "./prosody/prosody.cfg.lua:/etc/prosody/prosody.cfg.lua:ro"
|
||||
- "./prosody/certs/jitsi.crt:/var/lib/prosody/jitsi.crt:ro"
|
||||
|
@ -11,16 +11,19 @@ services:
|
|||
environment:
|
||||
- JICOFO_AUTH_PASSWORD=jicofopass
|
||||
- JVB_AUTH_PASSWORD=jvbpass
|
||||
ports:
|
||||
- "5222:5222/tcp"
|
||||
|
||||
jitsi-conference-focus:
|
||||
image: superboum/amd64_jitsi_conference_focus:v10
|
||||
image: superboum/amd64_jitsi_conference_focus:v11
|
||||
volumes:
|
||||
- "./prosody/certs/jitsi.crt:/usr/local/share/ca-certificates/jitsi.crt:ro"
|
||||
- "./prosody/certs/auth.jitsi.crt:/usr/local/share/ca-certificates/auth.jitsi.crt:ro"
|
||||
- "./jicofo/jicofo.conf:/etc/jitsi/jicofo.conf:ro"
|
||||
|
||||
jitsi-videobridge:
|
||||
image: superboum/amd64_jitsi_videobridge:v21
|
||||
image: superboum/amd64_jitsi_videobridge:v22
|
||||
network_mode: "host"
|
||||
volumes:
|
||||
- "./prosody/certs/jitsi.crt:/usr/local/share/ca-certificates/jitsi.crt:ro"
|
||||
- "./prosody/certs/auth.jitsi.crt:/usr/local/share/ca-certificates/auth.jitsi.crt:ro"
|
||||
|
@ -31,7 +34,7 @@ services:
|
|||
- "10000:10000/udp"
|
||||
|
||||
jitsi-meet:
|
||||
image: superboum/amd64_jitsi_meet:v6
|
||||
image: superboum/amd64_jitsi_meet:v7
|
||||
volumes:
|
||||
- "./prosody/certs/jitsi.crt:/etc/nginx/jitsi.crt:ro"
|
||||
- "./prosody/certs/jitsi.key:/etc/nginx/jitsi.key:ro"
|
||||
|
|
|
@ -62,7 +62,7 @@ videobridge {
|
|||
|
||||
configs {
|
||||
unique-xmpp-server {
|
||||
hostname="jitsi-xmpp"
|
||||
hostname="172.17.0.1"
|
||||
domain = "auth.jitsi"
|
||||
username = "jvb"
|
||||
password = "jvbpass"
|
||||
|
|
|
@ -22,7 +22,7 @@ var config = {
|
|||
},
|
||||
|
||||
// BOSH URL. FIXME: use XEP-0156 to discover it.
|
||||
bosh: '//192.168.1.143/http-bind',
|
||||
bosh: '//[2a0c:e303:0:2a00::de6]/http-bind',
|
||||
|
||||
// Websocket URL
|
||||
// websocket: 'wss://jitsi-meet.example.com/xmpp-websocket',
|
||||
|
|
14
cluster/prod/app/matrix/README.md
Normal file
14
cluster/prod/app/matrix/README.md
Normal file
|
@ -0,0 +1,14 @@
|
|||
# Informations relatives à la config Matrix
|
||||
|
||||
## Ressources
|
||||
|
||||
- La doc de Synapse est là : https://element-hq.github.io/synapse/latest/welcome_and_overview.html
|
||||
|
||||
### Métriques
|
||||
|
||||
- La page pour configurer les metrics : https://element-hq.github.io/synapse/latest/usage/configuration/config_documentation.html?highlight=metrics#metrics
|
||||
- La page pour le tutoriel sur configurer les metrics avec Prometheus : https://element-hq.github.io/synapse/latest/metrics-howto.html?highlight=metrics#how-to-monitor-synapse-metrics-using-prometheus
|
||||
|
||||
---
|
||||
|
||||
> Avec Nix on n'aurait pas tous ces problèmes.
|
|
@ -6,18 +6,18 @@ services:
|
|||
context: ./riotweb
|
||||
args:
|
||||
# https://github.com/vector-im/element-web/releases
|
||||
VERSION: 1.11.49
|
||||
image: lxpz/amd64_elementweb:v35
|
||||
VERSION: v1.11.78
|
||||
image: particallydone/amd64_elementweb:v36
|
||||
|
||||
synapse:
|
||||
build:
|
||||
context: ./matrix-synapse
|
||||
args:
|
||||
# https://github.com/matrix-org/synapse/releases
|
||||
VERSION: 1.95.1
|
||||
VERSION: v1.104.0
|
||||
# https://github.com/matrix-org/synapse-s3-storage-provider/commits/main
|
||||
# Update with the latest commit on main each time you update the synapse version
|
||||
# otherwise synapse may fail to launch due to incompatibility issues
|
||||
# see this issue for an example: https://github.com/matrix-org/synapse-s3-storage-provider/issues/64
|
||||
S3_VERSION: v1.2.1
|
||||
image: lxpz/amd64_synapse:v58
|
||||
S3_VERSION: 2c46a764f700e6439afa11c00db827ddf21a9e89
|
||||
image: particallydone/amd64_synapse:v60
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
FROM amd64/debian:bookworm as builder
|
||||
FROM amd64/debian:trixie AS builder
|
||||
|
||||
ARG VERSION
|
||||
ARG S3_VERSION
|
||||
|
@ -22,21 +22,25 @@ RUN apt-get update && \
|
|||
libpq-dev \
|
||||
virtualenv \
|
||||
libxslt1-dev \
|
||||
git && \
|
||||
virtualenv /root/matrix-env -p /usr/bin/python3 && \
|
||||
git
|
||||
|
||||
RUN virtualenv /root/matrix-env -p /usr/bin/python3 && \
|
||||
. /root/matrix-env/bin/activate && \
|
||||
pip3 install \
|
||||
https://github.com/matrix-org/synapse/archive/v${VERSION}.tar.gz#egg=matrix-synapse[matrix-synapse-ldap3,postgres,resources.consent,saml2,url_preview] && \
|
||||
https://github.com/element-hq/synapse/archive/${VERSION}.tar.gz#egg=matrix-synapse[matrix-synapse-ldap3,postgres,resources.consent,saml2,url_preview] && \
|
||||
pip3 install \
|
||||
git+https://github.com/matrix-org/synapse-s3-storage-provider.git@${S3_VERSION}
|
||||
|
||||
FROM amd64/debian:bookworm
|
||||
# WARNING: trixie n'est pas une LTS
|
||||
# mais on est obligé d'avoir la même version que le builder
|
||||
# et le builder veut une version de rustc qui n'est pas dans bookworm (dernière LTS at the time of writing)
|
||||
FROM amd64/debian:trixie
|
||||
|
||||
RUN apt-get update && \
|
||||
apt-get -qq -y full-upgrade && \
|
||||
apt-get install -y \
|
||||
python3 \
|
||||
python3-distutils \
|
||||
python3-setuptools \
|
||||
libffi8 \
|
||||
libjpeg62-turbo \
|
||||
libssl3 \
|
||||
|
|
|
@ -1,13 +1,16 @@
|
|||
FROM amd64/debian:buster as builder
|
||||
FROM amd64/debian:trixie as builder
|
||||
|
||||
ARG VERSION
|
||||
WORKDIR /root
|
||||
|
||||
RUN apt-get update && \
|
||||
apt-get install -y wget && \
|
||||
wget https://github.com/vector-im/element-web/releases/download/v${VERSION}/element-v${VERSION}.tar.gz && \
|
||||
tar xf element-v${VERSION}.tar.gz && \
|
||||
mv element-v${VERSION}/ riot/
|
||||
apt-get install -y wget
|
||||
|
||||
RUN wget https://github.com/element-hq/element-web/releases/download/${VERSION}/element-${VERSION}.tar.gz && \
|
||||
tar xf element-${VERSION}.tar.gz && \
|
||||
mv element-${VERSION}/ riot/
|
||||
|
||||
# Le conteneur de superboum contient uniquement un serveur web de 5 lignes.
|
||||
# Ca vous ennuie ? On peut publier Riot dans un bucket web Garage, tkt, ça sera Tricot qui servira.
|
||||
FROM superboum/amd64_webserver:v3
|
||||
COPY --from=builder /root/riot /srv/http
|
||||
|
|
|
@ -15,7 +15,7 @@ job "matrix" {
|
|||
driver = "docker"
|
||||
|
||||
config {
|
||||
image = "lxpz/amd64_synapse:v58"
|
||||
image = "particallydone/amd64_synapse:v60"
|
||||
network_mode = "host"
|
||||
readonly_rootfs = true
|
||||
ports = [ "api_port" ]
|
||||
|
@ -101,7 +101,7 @@ job "matrix" {
|
|||
driver = "docker"
|
||||
|
||||
config {
|
||||
image = "lxpz/amd64_synapse:v58"
|
||||
image = "particallydone/amd64_synapse:v60"
|
||||
readonly_rootfs = true
|
||||
command = "/usr/local/bin/matrix-s3-async"
|
||||
work_dir = "/tmp"
|
||||
|
@ -137,7 +137,7 @@ EOH
|
|||
task "riotweb" {
|
||||
driver = "docker"
|
||||
config {
|
||||
image = "lxpz/amd64_elementweb:v35"
|
||||
image = "particallydone/amd64_elementweb:v36"
|
||||
ports = [ "web_port" ]
|
||||
volumes = [
|
||||
"secrets/config.json:/srv/http/config.json"
|
||||
|
@ -190,7 +190,7 @@ EOH
|
|||
driver = "docker"
|
||||
|
||||
config {
|
||||
image = "ghcr.io/matrix-org/sliding-sync:v0.99.12"
|
||||
image = "ghcr.io/matrix-org/sliding-sync:v0.99.16"
|
||||
ports = [ "syncv3_api", "syncv3_metrics" ]
|
||||
}
|
||||
|
||||
|
|
|
@ -26,6 +26,16 @@ scrape_configs:
|
|||
cert_file: /etc/prometheus/consul-client.crt
|
||||
key_file: /etc/prometheus/consul-client.key
|
||||
|
||||
- job_name: 'jitsi-videobridge'
|
||||
consul_sd_configs:
|
||||
- server: 'https://localhost:8501'
|
||||
services:
|
||||
- 'management-video-jitsi'
|
||||
tls_config:
|
||||
ca_file: /etc/prometheus/consul-ca.crt
|
||||
cert_file: /etc/prometheus/consul-client.crt
|
||||
key_file: /etc/prometheus/consul-client.key
|
||||
|
||||
- job_name: 'garage'
|
||||
authorization:
|
||||
type: Bearer
|
||||
|
|
|
@ -20,7 +20,7 @@ job "telemetry-storage" {
|
|||
task "prometheus" {
|
||||
driver = "docker"
|
||||
config {
|
||||
image = "prom/prometheus:v2.46.0"
|
||||
image = "prom/prometheus:v2.50.1"
|
||||
network_mode = "host"
|
||||
ports = [ "prometheus" ]
|
||||
args = [
|
||||
|
|
|
@ -23,7 +23,7 @@ job "woodpecker-ci" {
|
|||
task "server" {
|
||||
driver = "docker"
|
||||
config {
|
||||
image = "woodpeckerci/woodpecker-server:v2.4.1"
|
||||
image = "woodpeckerci/woodpecker-server:v2.7.1"
|
||||
ports = [ "web_port", "grpc_port" ]
|
||||
network_mode = "host"
|
||||
}
|
||||
|
@ -121,6 +121,7 @@ http {
|
|||
listen [::]:14453 ssl;
|
||||
http2 on;
|
||||
server_name woodpecker.deuxfleurs.fr;
|
||||
resolver 127.0.0.1 valid=30s;
|
||||
|
||||
ssl_certificate "/etc/ssl/certs/woodpecker.cert";
|
||||
ssl_certificate_key "/etc/ssl/certs/woodpecker.key";
|
||||
|
|
|
@ -49,19 +49,19 @@
|
|||
siteName = "bespin";
|
||||
publicKey = "bIjxey/VhBgVrLa0FxN/KISOt2XFmQeSh1MPivUq9gg=";
|
||||
address = "10.83.3.1";
|
||||
endpoint = "109.136.139.78:33731";
|
||||
endpoint = "109.130.116.21:33731";
|
||||
};
|
||||
"df-ymf" = {
|
||||
siteName = "bespin";
|
||||
publicKey = "pUIKv8UBl586O7DBrHBsb9BgNU7WlYQ2r2RSNkD+JAQ=";
|
||||
address = "10.83.3.2";
|
||||
endpoint = "109.136.139.78:33732";
|
||||
endpoint = "109.130.116.21:33732";
|
||||
};
|
||||
"df-ymk" = {
|
||||
siteName = "bespin";
|
||||
publicKey = "VBmpo15iIJP7250NAsF+ryhZc3j+8TZFnE1Djvn5TXI=";
|
||||
address = "10.83.3.3";
|
||||
endpoint = "109.136.139.78:33733";
|
||||
endpoint = "109.130.116.21:33733";
|
||||
};
|
||||
"abricot" = {
|
||||
siteName = "scorpio";
|
||||
|
@ -99,6 +99,12 @@
|
|||
address = "10.83.5.4";
|
||||
endpoint = "82.64.238.84:33743";
|
||||
};
|
||||
"pamplemousse" = {
|
||||
siteName = "corrin";
|
||||
publicKey = "6y5GrNXEql12AObuSfOHGxxUKpdlcyapu+juLYOEBhc=";
|
||||
address = "10.83.6.1";
|
||||
endpoint = "45.81.62.36:33731";
|
||||
};
|
||||
};
|
||||
|
||||
# Pin Nomad version
|
||||
|
|
|
@ -13,3 +13,5 @@ onion.machine.deuxfleurs.fr ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINjBQ67fxwuDDzRP
|
|||
oseille.machine.deuxfleurs.fr ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAgQdQ5UVFFn+DXN90ut9+V7NtEopQJnES3r8soKTZW4
|
||||
io.machine.deuxfleurs.fr ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIvgCJ7Jew7ou1RZuaT41Sd+ucZAgxUwtdieqNqoC3+T
|
||||
ortie.machine.deuxfleurs.fr ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMqtfIPLk8a5tM6Upj7GQwlIS16nBPrZYVXE2FVlO2Yn
|
||||
pamplemousse.machine.deuxfleurs.fr ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAI0M5qny9yQ6LNzWqPfSlOWwTYpvxQtuSpFiOb6aVtA
|
||||
2001:912:1ac0:2200::201 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAI0M5qny9yQ6LNzWqPfSlOWwTYpvxQtuSpFiOb6aVtA
|
||||
|
|
14
cluster/prod/node/pamplemousse.nix
Normal file
14
cluster/prod/node/pamplemousse.nix
Normal file
|
@ -0,0 +1,14 @@
|
|||
# Configuration file local to this node
|
||||
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
# Use the systemd-boot EFI boot loader.
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.timeout = 5;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
|
||||
deuxfleurs.hostName = "pamplemousse";
|
||||
deuxfleurs.staticIPv4.address = "192.168.5.201";
|
||||
deuxfleurs.staticIPv6.address = "2001:912:1ac0:2200::201";
|
||||
}
|
1
cluster/prod/node/pamplemousse.site.nix
Symbolic link
1
cluster/prod/node/pamplemousse.site.nix
Symbolic link
|
@ -0,0 +1 @@
|
|||
../site/corrin.nix
|
8
cluster/prod/site/corrin.nix
Normal file
8
cluster/prod/site/corrin.nix
Normal file
|
@ -0,0 +1,8 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
deuxfleurs.siteName = "corrin";
|
||||
deuxfleurs.staticIPv4.defaultGateway = "192.168.5.1";
|
||||
deuxfleurs.cnameTarget = "corrin.site.deuxfleurs.fr.";
|
||||
deuxfleurs.publicIPv4 = "45.81.62.36";
|
||||
}
|
|
@ -44,3 +44,6 @@ Host io
|
|||
|
||||
Host ortie
|
||||
HostName ortie.machine.deuxfleurs.fr
|
||||
|
||||
Host pamplemousse
|
||||
HostName 2001:912:1ac0:2200::201
|
||||
|
|
|
@ -54,7 +54,7 @@ job "core-diplonat" {
|
|||
data = <<EOH
|
||||
DIPLONAT_REFRESH_TIME=60
|
||||
DIPLONAT_EXPIRATION_TIME=300
|
||||
DIPLONAT_IPV6_ONLY={{ $site := env "meta.site" }}{{ if eq $site "corrin" }}false{{ else }}true{{ end }}
|
||||
DIPLONAT_IPV6_ONLY=true
|
||||
DIPLONAT_CONSUL_NODE_NAME={{ env "attr.unique.hostname" }}
|
||||
DIPLONAT_CONSUL_URL=https://localhost:8501
|
||||
DIPLONAT_CONSUL_CA_CERT=/etc/diplonat/consul-ca.crt
|
||||
|
|
Loading…
Reference in a new issue