Offen is distributed as a single binary
offen that you can download and deploy to basically any environment. Alternatively offen/offen is available on Docker Hub and wraps the same command that is described here.
- Starting the application
- Specifying a configuration file
offen without any arguments starts the Offen web server, listening to the port that is configured. When deploying the application and exposing it to the internet, this will be the command you will be using.
It is also aliased as
Every subcommand accepts a
-envfile argument that you can use to point at your runtime configuration. In case you do not supply a value, the default cascade will be used for looking up this file.
Each subcommand can also show information about its usage when passing
Offen writes data to a database.
offen setup ensures the configured database is set up correctly and populated with seed data.
Usage of "setup": -email string the email address used for login -envfile string the env file to use -force allow setup to delete existing data -forceid string force usage of given valid UUID as account ID -name string the account name -password string the password used for login -populate in case required secrets are missing from the configuration, create and persist them in the target env file -source string a configuration file
In case the current runtime configuration is missing required secrets, you can use the
-populate flag and the command will generate the missing values and store them on the system, so that they get picked up when the application is run the next time.
If you do not want to supply your root account’s password in plaintext, do not use the
-password flag and the command will prompt for it before creating anything:
$ ./offen setup -email email@example.com -name test INFO You can now enter your password (input is not displayed):
Offen requires secret random values to be provided in its runtime configuration.
offen secret can be used to generate Base64 encoded secrets of the requested length and count.
Usage of "secret": -count int the number of secrets to generate (default 1) -length int the length in bytes (default 16) -quiet only print secrets
The default length of 16 is a good default for the secrets required for configuring the application.
offen version prints information about the git revision the binary has been built from.
offen demo starts a one-off demo instance that requires zero configuration. This is meant for anyone that wants to have a look at what Offen is offering but doesn’t want to set up any configuration yet. Data is persisted in an temporary database that will be deleted once the process is shut down.
offen debug prints the currently applicable runtime configuration. Use this in case Offen does end up with a configuration you do not expect. Passing a value to the
-envfile flag will override the default lookup (just like with for example
The following commands are only relevant when you plan to run offen as a horizontally scaling service, i.e. you might have multiple instances of the application writing to and reading from the same database.
offen migrate applies pending database migrations to the configured database. This is only necessary in case you have updated the binary installation and run it against the same database setup.
In case you have configured Offen to run as a single node setup (which is the default), this will automatically be run on application startup.
Event data in Offen is expected to expire and be pruned after six months. Running
offen expire looks for events in the configured database that qualify for deletion and removes them. This is a destructive operation and cannot be undone.
In case you have configured Offen to run as a single node setup (which is the default), a job running this command will automatically be scheduled, so you will never need to run this yourself.