Reference¶
The following is a cheat sheet for the Mobilizon configuration files.
Instance¶
:instance¶
:nameThe fallback instance name if not configured into the admin UI:descriptionThe fallback instance description if not configured into the admin UI:hostnameYour instance's hostname:registrations_openThe fallback instance setting to open registrations if not configured into the admin UI:registration_email_allowlistA list of emails or emails domains for which the registration is allowed even if registration is closed:registration_email_denylistA list of emails or emails domains for which the registration is always denied:languagesThe fallback instance languages if not configured into the admin UI:default_languageThe instance's default language if user's language can't be found:demoWhether the instance is in demo mode:extra_categoriesA list of%{id: :category_slug, label: "Category label"}, for instance%{id: :protest, label: "Protest"}.:allow_relayWhether the instance can be subscribed to and can relay activities:federatingCompletely stop federating with the exterior:upload_limitThe default maximum size for an upload:avatar_upload_limitThe maximum size for an avatar upload size:banner_upload_limitThe maximum size for a banner upload size:remove_orphan_uploadsWhether to clean orphan uploads (unattached to entities like events or posts):orphan_upload_grace_period_hoursHow long before an orphan upload can be removedremove_unconfirmed_usersWhether to remove unconfirmed users (unrelated to event participation)unconfirmed_user_grace_period_hoursHow long before an unconfirmed user account can be removed (unrelated to event participation)activity_expire_daysHow long before removing group activitiesactivity_keep_numberHow many activities to always keepduration_of_long_eventDuration, in days, to separate short events and long events (the activities). If zero, no separation and all events are showed in same type.enable_instance_feedsActivate the instance-wide feeds, which provide all of the instance public events and postsemail_fromThe email for theFrom:header in emailsemail_reply_toThe email for theReply-To:header in emails
:groups¶
:enabledWhether groups are enabled
:events¶
:enabledWhether events are enabled
:media_proxy¶
enabledenable the media proxyproxy_optsoptions for the media proxyredirect_on_failurewhether to redirect to the original media if proxying failsmax_body_lengthhow big the media can bemax_read_durationhow long we can wait for the remote mediahttpfollow_redirectwhether we follow redirects
:html_hooks¶
Allows to inject raw HTML code into the app main page.
:app_index_html_head_firstinject raw HTML code before the first node of head element:app_index_html_head_lastinject raw HTML code after the last node of head element:app_index_html_body_firstinject raw HTML code before the first node of body element:app_index_html_body_lastinject raw HTML code after the last node of body element
These hooks can by used to add custom styles, scripts or HTML elements to the webapp.
The value of the key must be of type string but can be defined by any Elixir code that return a string. It could be:
- just a string like
"<script>console.log(\"app_index_html_head_last\");</script>" - or a function call like
File.read!("/path/to/a/html/snippet.html")
By default, html hooks are not defined. Hence nothing is injected into the app main page.
:restrictions¶
:only_admin_can_create_groupsrestrict the group creation possibility only to administrators:only_groups_can_create_eventsrestrict the event creation possibility only through groups
HTTP Server¶
Mobilizon.Web.Endpoint¶
See also the configuration reference for Phoenix.Endpoint.
:urlconfiguration for generating URLs throughout the app:hostYour instance's hostname:schemehttporhttps
:secret_key_baseA secret key used as a base to generate secrets for encrypting and signing data:render_errorsdefines the view that will be used to render errors:pubsub_serverthe name of the pubsub server to use in channels:cache_static_manifesta path to a json manifest file that contains static files and their digested version:has_reverse_proxywhether you use a reverse proxy (useful to get the user's real IP)
:http_security¶
:enabledWhether to add security-related HTTP headers:stsWhether to add an HSTS header:sts_max_agethe max-age for the HSTS header:csp_policya keyword-list of CSP components, made from domain lists:referrer_policya value for the Referrer-Policy header
Uploads¶
Mobilizon.Web.Upload¶
:uploaderThe module that handles the upload. See uploaders:filtersA list of modules performing various tasks on uploads. See filters:allow_list_mime_typesa list of allowed MIME types:link_nameWhether to add the original file name at the end of the URL
Uploaders¶
Mobilizon.Web.Upload.Uploader.LocalUploads to the server in the uploads folder
Mobilizon.Web.Upload.Uploader.Local¶
:uploadsthe folder where to put uploads in, relative to Mobilizon's working directory
Filters¶
Mobilizon.Web.Upload.Filter.DedupeDedupes duplicate files by comparing their hashMobilizon.Web.Upload.Filter.OptimizePerforms multiple optimization tools on medias (see ExOptimizer)
Email¶
Mobilizon.Web.Email.Mailer¶
:adapterOne of Bamboo's available adapters
See each adapter's documentation for extra parameters.
Example for the SMTP adapter:
config :mobilizon, Mobilizon.Web.Email.Mailer,
adapter: Bamboo.SMTPAdapter,
server: "smtp.domain",
username: "your.name@your.domain"
password: "pa55word",
port: 465,
ssl: true,
auth: :always
Example for the Sendgrid adapter:
config :mobilizon, Mobilizon.Web.Email.Mailer,
adapter: Bamboo.SendGridAdapter,
api_key: "YOUR_API_KEY"
:logger¶
See also the configuration reference for Logger.
:backendsA list of logger backends. See logger backends.:formatLog format template:metadataWhat to include in the log
Logger Backends¶
:consoleSends the logs tostdout.Sentry.LoggerBackendsends the logs to Sentry, which needs to be configured.
Authentication¶
Mobilizon.Service.Auth.Authenticator¶
The module to perform the authentication, must be one of:
Mobilizon.Service.Auth.MobilizonAuthenticatorMobilizon's default database authenticatorMobilizon.Service.Auth.LDAPAuthenticatorLDAP authentication
Authenticators always fall back on MobilizonAuthenticator if the user is not found.
:ldap¶
See the LDAP configuration.
:auth¶
:oauth_consumer_strategiesA list of auth methods to be displayed on the login page
See the OAuth configuration.
Link parsing¶
Mobilizon.Service.Formatter¶
Configuration for Mobilizon's link formatter which parses mentions, hashtags, and URLs.
:classspecify the class to be added to the generated link:relTherelattribute value:new_windowadds target="_blank" attribute:truncateSet to a number to truncate URLs longer then the number. Truncated URLs will end in ...:strip_prefixStrip the scheme prefix:extralink URLs with rarely used schemes (magnet, ipfs, irc, etc.):validate_tldSet to false to disable TLD validation for URLs/emails. Can be set to :no_scheme to validate TLDs only for urls without a scheme (e.g example.com will be validated, but http://example.loki won't)
Locales¶
:cldr¶
Configuration for CLDR data, used to format & handle datetimes, numbers,… according to the user's locale
:localesA list of CLDR-locales
Federation¶
:activitypub¶
:actor_stale_periodhow long before an actor needs to be refreshed:actor_key_rotation_delayhow long before an actor can rotate their keys:sign_object_fetcheswhether to sign object fetches
Geospatial¶
Mobilizon.Service.Geospatial¶
See Geocoders.
:maps¶
:tilesdefines the tiles server endpoint:endpointThe templated tile endpoint URL. If you change this from the default value (openstreetmap.org), you might consider editing the default CSP policy to allow your tiles to be displayed.:attributionA string to give proper map credits attribution
:routing:typeone of:openstreetmaporgoogle_maps
Anonymous options¶
:anonymous¶
:participation¶
:allowedif anonymous participation is allowed:validationa map of validation methods. See validation methods.
:reports¶
:allowedif anonymous reporting is allowed
Validation methods¶
-
:email:enabledif validation through email is enabled:confirmation_requiredif email confirmation is required (clicking on a link in a sent email)
-
:captcha:enabledif validation through captcha is enabled
Background jobs¶
Oban¶
See the configuration reference for Oban.
Queues¶
Mobilizon has the following queues: * search inserts the events into the search database * mailers sends the emails * background perform background tasks * default everything else
Periodic jobs¶
Mobilizon.Service.Workers.BuildSiteMapbuilds asitemap.xmlfileMobilizon.Service.Workers.RefreshGroupsrefreshes remote groups to make sure we didn't miss any contentMobilizon.Service.Workers.CleanOrphanMediaWorkerclean orphan mediaMobilizon.Service.Workers.CleanUnconfirmedUsersWorkerclean unconfirmed users
Resources¶
:rich_media¶
:parsersA list of metadata parsers
Metadata parsers¶
Mobilizon.Service.RichMedia.Parsers.OEmbedMobilizon.Service.RichMedia.Parsers.OGPMobilizon.Service.RichMedia.Parsers.TwitterCardMobilizon.Service.RichMedia.Parsers.Fallback(just<title>and<meta name="description">)
Mobilizon.Service.ResourceProviders¶
See Resource Providers.
:external_resource_providers¶
See Resource Providers.
Exports¶
See Exports
Analytics¶
See Analytics
Pictures¶
See Pictures
Global search¶
See Global search
Anti Spam¶
Currently, only Akmiset service is implemented.
config :mobilizon, Mobilizon.Service.AntiSpam,
service: Mobilizon.Service.AntiSpam.Akismet
Which requires an api key that can be obtain from the profider.
config :mobilizon, Mobilizon.Service.AntiSpam.Akismet,
key: "somekeyhere"
There is also a mock provider used for tests.
config :mobilizon, Mobilizon.Service.AntiSpam,
service: Mobilizon.Service.AntiSpam.Mock