99 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Elixir
		
	
	
	
	
	
			
		
		
	
	
			99 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			Elixir
		
	
	
	
	
	
# 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", "smtp"),
 | 
						|
  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")
 |