The change is already applied. You may remove the MOBILIZON_SMTP_HOSTNAME
environment key which is not used anymore.
In your configuration file under config :mobilizon, Mobilizon.Web.Email.Mailer
,
- Change
Bamboo.SMTPAdapter
toSwoosh.Adapters.SMTP
, - rename the
server
key torelay
- remove the
hostname
key, - the default value of the username and password fields is an empty string and no longer
nil
.
config :mobilizon, Mobilizon.Web.Email.Mailer,
- adapter: Bamboo.SMTPAdapter,
+ adapter: Swoosh.Adapters.SMTP,
- server: "localhost",
+ relay: "localhost",
- hostname: "localhost",
# usually 25, 465 or 587
port: 25,
- username: nil,
+ username: "",
- password: nil,
+ password: "",
# can be `:always` or `:never`
tls: :if_available,
allowed_tls_versions: [:tlsv1, :"tlsv1.1", :"tlsv1.2"],
retries: 1,
# can be `true`
no_mx_lookups: false,
# can be `:always`. If your smtp relay requires authentication set it to `:always`.
auth: :if_available
Requirements dependencies depend on the way Mobilizon is installed.
You are already using latest Elixir version in the release tarball and Docker images.
Elixir 1.12 and Erlang OTP 22 are now required. If your distribution or the repositories from Erlang Solutions don't provide these versions, you need to uninstall the current versions and install Elixir through the ASDF tool.
Mobilizon 2.0 uses data based on timezone-boundary-builder (which is based itself on OpenStreetMap data) to determine the timezone of an event automatically, based on it's geocoordinates. However, this needs ~700Mio of disk, so we don't redistribute data directly, depending on the case. It's possible to skip this part, but users will need to manually pick the timezone for every event they created when it has a different timezone from their own.
The geographic timezone data is already bundled into the image, you have nothing to do.
In order to keep the release tarballs light, the geographic timezone data is not bundled directly. You need to download the data :
-
either raw from Github, but requires an extra ~1Gio of memory to process the data
sudo -u mobilizon mkdir /var/lib/mobilizon/timezones sudo -u mobilizon ./bin/mobilizon_ctl tz_world.update
-
either already processed from our own distribution server
sudo -u mobilizon mkdir /var/lib/mobilizon/timezones sudo -u mobilizon curl -L 'https://packages.joinmobilizon.org/tz_world/timezones-geodata.dets' -o /var/lib/mobilizon/timezones/timezones-geodata.dets
In both cases, ~700Mio of disk will be used. You may use the following configuration to specify where the data is expected if you decide to change it from the default location (/var/lib/mobilizon/timezones
) :
config :tz_world, data_dir: "/some/place"
You need to download the data :
-
either raw from Github, but requires an extra ~1Gio of memory to process the data
sudo -u mobilizon mkdir /var/lib/mobilizon/timezones sudo -u mobilizon mix mobilizon.tz_world.update
-
either already processed from our own distribution server
sudo -u mobilizon mkdir /var/lib/mobilizon/timezones sudo -u mobilizon curl -L 'https://packages.joinmobilizon.org/tz_world/timezones-geodata.dets' -o /var/lib/mobilizon/timezones/timezones-geodata.dets
In both cases, ~700Mio of disk will be used. You may use the following configuration to specify where the data is expected:
config :tz_world, data_dir: "/some/place"
Create the folder for default CSV export:
sudo -u mobilizon mkdir -p /var/lib/mobilizon/uploads/exports/csv
This path can be configured, see the dedicated docs page about this. Files in this folder are temporary and are cleaned once an hour.
These are optional, installing them will allow Mobilizon to export to PDF and ODS as well. Mobilizon 2.0 allows to export the participant list, but more is planned.
Everything is included in our Docker image.
New optional Python dependencies:
Python
>= 3.6weasyprint
for PDF export (with a few extra dependencies)pyexcel-ods3
for ODS export (no extra dependencies)
Both can be installed through pip. You need to enable and configure exports for PDF and ODS in the configuration afterwards. Read the dedicated docs page about this.
The 1.1 version of Mobilizon brings Elixir releases support. An Elixir release is a self-contained directory that contains all of Mobilizon's code (front-end and backend), it's dependencies, as well as the Erlang Virtual Machine and runtime (only the parts you need). As long as the release has been assembled on the same OS and architecture, it can be deploy and run straight away. Read more about releases.
Migrating to releases means:
- You only get a precompiled binary, so you avoid compilation times when updating
- No need to have Elixir/NodeJS installed on the system
- Code/data/config location is more common (/opt, /var/lib, /etc)
- More efficient, as only what you need from the Elixir/Erlang standard libraries is included and all of the code is directly preloaded
- You can't hardcode modifications in Mobilizon's code
Staying on source releases means:
- You need to recompile everything with each update
- Compiling frontend and backend has higher system requirements than just running Mobilizon
- You can change things in Mobilizon's code and recompile right away to test changes
If you want to migrate to releases, we provide a full guide. You may do this at any time.
To stay on a source release, you just need to check the following things:
- Rename your configuration file
config/prod.secret.exs
toconfig/runtime.exs
. - If your config file includes
server: true
underMobilizon.Web.Endpoint
, remove it.config :mobilizon, Mobilizon.Web.Endpoint, - server: true,
- The uploads default directory is now
/var/lib/mobilizon/uploads
. To keep it in the previousuploads/
directory, just add the following line toconfig/runtime.exs
:Or you may use any other directory where theconfig :mobilizon, Mobilizon.Web.Upload.Uploader.Local, uploads: "uploads"
mobilizon
user has write permissions. - The GeoIP database default directory is now
/var/lib/mobilizon/geo/GeoLite2-City.mmdb
. To keep it in the previouspriv/data/GeoLite2-City.mmdb
directory, just add the following line toconfig/runtime.exs
:Or you may use any other directory where theconfig :geolix, databases: [ %{ id: :city, adapter: Geolix.Adapter.MMDB2, source: "priv/data/GeoLite2-City.mmdb" } ]
mobilizon
user has read permissions.