Plume relies on some environment variables for some configuration options. You can either set them before
starting the app with
cargo run or write them in a
.env file to have automatically loaded.
Here are the variables that Plume uses:
BASE_URL: the domain name, or IP and port on which Plume is listening. It is used in all federation-related code.
DATABASE_URL: the URL of the database used by Plume (
postgres://plume:plume@localhost/plumeby default with PostgreSQL,
MIGRATION_DIRECTORY: The folder that stores the migration files for the database,
migrations/postgresfor PostgreSQL databases or
migrations/sqlitefor SQlite databases.
ROCKET_ADDRESS: the address on which Plume should listen (
ROCKET_PORT: the port on which Plume should listen (
ROCKET_SECRET_KEY: key used to sign private cookies and for CSRF protection. If it is not set, it will be regenerated everytime you restart Plume, meaning that all your users will get disconnected. You can generate one with
openssl rand -base64 32.
SEARCH_INDEX: the directory where the search index will be saved (
MEDIA_UPLOAD_DIRECTORY: the directory in which to store the uploaded medias (
./static/mediaby default). Plume won’t create this directory if it doesn’t exist, so make sure to create it before.
DEFAULT_THEME: the name of the default theme. It should be the same as the name of the directory containing the theme in
DB_MAX_SIZE: the maximum number of database connections (
10by default). Since 0.5.0.
DB_MIN_IDLE: the minimum idle database connection count (the same to
DB_MAX_SIZEby default). Since 0.5.0.
The SMTP server to send mails can be configured with:
MAIL_SERVER: the SMTP server to connect to.
MAIL_USER: the username for authentication purposes.
MAIL_PASSWORD: its password.
MAIL_HELO_NAME: the name sent during EHLO/HELO.
MAIL_ADDRESS: the address that emails will be sent from.
For the moment, Plume only sends mail when you need to reset your password (and only from the web interface,
plm users reset-password doesn’t send anything).
If you don’t plan to use this feature, you can simply remove (or comment) the lines to configure the mail server in your
You can also change the logo you want to use for your instance in this file. Your logo should be in the
To make Plume load it, you can use:
PLUME_LOGO: it will change the logo in the header, the favicon, and the webmanifest (used when pinning a website to home screen on mobile phones). It is recommended to use SVG files when possible.
PLUME_LOGO_FAVICON: that can change the favicon, if you want to use an image that is not
sizeis one of 48, 72, 96, 144, 160, 192, 256 or 512. It will change the icon to use in the webmanifest for the given size. You can of course specify it multiple times, with different sizes.
All the specified paths should be relative to the
Here is an example, that will make your instance use the “paragraphs” logo.
PLUME_LOGO=icons/trwnh/paragraphs/plumeParagraphs.svg PLUME_LOGO_FAVICON=icons/trwnh/paragraphs/plumeParagraphs32.png PLUME_LOGO_48=icons/trwnh/paragraphs/plumeParagraphs48.png PLUME_LOGO_72=icons/trwnh/paragraphs/plumeParagraphs72.png PLUME_LOGO_96=icons/trwnh/paragraphs/plumeParagraphs96.png PLUME_LOGO_144=icons/trwnh/paragraphs/plumeParagraphs144.png PLUME_LOGO_160=icons/trwnh/paragraphs/plumeParagraphs160.png PLUME_LOGO_192=icons/trwnh/paragraphs/plumeParagraphs192.png PLUME_LOGO_256=icons/trwnh/paragraphs/plumeParagraphs256.png PLUME_LOGO_512=icons/trwnh/paragraphs/plumeParagraphs512.png