first commit

This commit is contained in:
2024-06-03 18:43:35 +02:00
parent 2da01a3f6e
commit f501d519af
883 changed files with 71550 additions and 2 deletions

1
dockers/mobilizon/.env Symbolic link
View File

@ -0,0 +1 @@
../../config/dockers.env

View File

@ -0,0 +1,98 @@
# Mobilizon instance configuration
import Config
listen_ip = System.get_env("MOBILIZON_INSTANCE_LISTEN_IP", "0.0.0.0")
listen_ip =
case listen_ip |> to_charlist() |> :inet.parse_address() do
{:ok, listen_ip} -> listen_ip
_ -> raise "MOBILIZON_INSTANCE_LISTEN_IP does not match the expected IP format."
end
config :mobilizon, Mobilizon.Web.Endpoint,
server: true,
url: [host: System.get_env("MOBILIZON_INSTANCE_HOST", "mobilizon.lan")],
http: [
port: String.to_integer(System.get_env("MOBILIZON_INSTANCE_PORT", "4000")),
ip: listen_ip
],
secret_key_base: System.get_env("MOBILIZON_INSTANCE_SECRET_KEY_BASE", "changethis")
config :mobilizon, Mobilizon.Web.Auth.Guardian,
secret_key: System.get_env("MOBILIZON_INSTANCE_SECRET_KEY", "changethis")
config :mobilizon, :instance,
name: System.get_env("MOBILIZON_INSTANCE_NAME", "Mobilizon"),
description: "Change this to a proper description of your instance",
hostname: System.get_env("MOBILIZON_INSTANCE_HOST", "mobilizon.lan"),
registrations_open: System.get_env("MOBILIZON_INSTANCE_REGISTRATIONS_OPEN", "false") == "true",
demo: false,
allow_relay: true,
federating: true,
email_from: System.get_env("MOBILIZON_INSTANCE_EMAIL", "noreply@mobilizon.lan"),
email_reply_to: System.get_env("MOBILIZON_REPLY_EMAIL", "noreply@mobilizon.lan")
config :mobilizon, Mobilizon.Storage.Repo,
adapter: Ecto.Adapters.Postgres,
username: System.get_env("MOBILIZON_DATABASE_USERNAME", "username"),
password: System.get_env("MOBILIZON_DATABASE_PASSWORD", "password"),
database: System.get_env("MOBILIZON_DATABASE_DBNAME", "mobilizon"),
hostname: System.get_env("MOBILIZON_DATABASE_HOST", "postgres"),
port: System.get_env("MOBILIZON_DATABASE_PORT", "5432"),
pool_size: 10
config :mobilizon, Mobilizon.Web.Email.Mailer,
adapter: Swoosh.Adapters.SMTP,
relay: System.get_env("MOBILIZON_SMTP_SERVER", "localhost"),
port: System.get_env("MOBILIZON_SMTP_PORT", "25"),
username: System.get_env("MOBILIZON_SMTP_USERNAME", nil),
password: System.get_env("MOBILIZON_SMTP_PASSWORD", nil),
tls: :if_available,
allowed_tls_versions: [:tlsv1, :"tlsv1.1", :"tlsv1.2"],
ssl: System.get_env("MOBILIZON_SMTP_SSL", "false"),
retries: 1,
no_mx_lookups: false,
auth: :if_available
config :geolix,
databases: [
%{
id: :city,
adapter: Geolix.Adapter.MMDB2,
source: "/var/lib/mobilizon/geo_db/GeoLite2-City.mmdb"
}
]
config :mobilizon, Mobilizon.Web.Upload.Uploader.Local,
uploads: System.get_env("MOBILIZON_UPLOADS", "/var/lib/mobilizon/uploads")
config :mobilizon, :exports,
path: System.get_env("MOBILIZON_UPLOADS_EXPORTS", "/var/lib/mobilizon/uploads/exports"),
formats: [
Mobilizon.Service.Export.Participants.CSV,
Mobilizon.Service.Export.Participants.PDF,
Mobilizon.Service.Export.Participants.ODS
]
config :tz_world,
data_dir: System.get_env("MOBILIZON_TIMEZONES_DIR", "/var/lib/mobilizon/timezones")
config :mobilizon,
Mobilizon.Service.Auth.Authenticator,
Mobilizon.Service.Auth.LDAPAuthenticator
config :mobilizon, :ldap,
enabled: true,
host: System.get_env("MOBILIZON_LDAP_HOST", "ldap"),
port: 389,
ssl: false,
sslopts: [],
tls: false,
tlsopts: [],
base: System.get_env("MOBILIZON_LDAP_BASE", ""),
uid: System.get_env("MOBILIZON_LDAP_UID", "cn"),
require_bind_for_search: true,
group: false,
bind_uid: {:full, System.get_env("MOBILIZON_LDAP_BINDUID", "nobody")},
bind_password: System.get_env("MOBILIZON_LDAP_BINDPASSWORD", "nobody")

View File

@ -0,0 +1,59 @@
version: "3.9"
services:
mobilizon:
image: framasoft/mobilizon:latest
container_name: ${mobilizonServName}
restart: ${restartPolicy}
depends_on:
- db
env_file:
- ../../secret/env-${mobilizonServName}
environment:
- MOBILIZON_INSTANCE_PORT=80
- MOBILIZON_DATABASE_HOST=db
- MOBILIZON_LDAP_HOST=ldap
- MOBILIZON_LDAP_BASE=ou=users,${ldap_root}
- MOBILIZON_LDAP_UID=cn
expose:
- 80
volumes:
- mobilizonUploads:/var/lib/mobilizon/uploads
- ${PWD}/config.exs:/etc/mobilizon/config.exs:ro
# - ${PWD}/GeoLite2-City.mmdb:/var/lib/mobilizon/geo_db/GeoLite2-City.mmdb
networks:
- mobilizonNet
- postfixNet
- ldapNet
labels:
- "traefik.enable=true"
- "traefik.http.routers.${mobilizonServName}.rule=Host(`${mobilizonHost}.${domain}`)"
- "traefik.http.services.${mobilizonServName}.loadbalancer.server.port=80"
- "traefik.docker.network=mobilizonNet"
db:
image: postgis/postgis:13-3.1
container_name: ${mobilizonDBName}
restart: ${restartPolicy}
env_file:
- ../../secret/env-${mobilizonDBName}
volumes:
- mobilizonDB:/var/lib/postgresql/data
networks:
- mobilizonNet
volumes:
mobilizonDB:
mobilizonUploads:
networks:
mobilizonNet:
external: true
name: mobilizonNet
postfixNet:
external: true
name: postfixNet
ldapNet:
external: true
name: ldapNet