mirror of
https://github.com/openSUSE/osem.git
synced 2026-08-13 19:54:02 +00:00
- No need to manually install bundler anymore - bundle to vendor/bundle - build nokogiri against system libraries - expose the port foreman is using - serve static files
93 lines
4.3 KiB
Markdown
93 lines
4.3 KiB
Markdown
# Install Open Source Event Manager
|
|
|
|
Here is what you need to install OSEM for production usage.
|
|
|
|
# 💥💥💥 WARNING 💥💥💥
|
|
|
|

|
|
|
|
OSEM is a Ruby on Rails server application for professional use, not some desktop app you run for yourself. If you deploy it, **YOU** are responsible for the data that users enter into it, this data includes personal information like email addresses and/or passwords that most likely can be used to harm them in some form (cracking, doxing, social engineering).
|
|
|
|
If you never deployed a Ruby on Rails app before we **strongly** suggest you seek help from someone who has. That someone is **NOT** the OSEM team so please do **NOT** open an issue expecting us to explain how to do this.
|
|
|
|
*You should know what you do and you have been warned*.
|
|
|
|
## Versions
|
|
|
|
OSEM is an [semantic versioned](http://semver.org/) app. That means given a version number MAJOR.MINOR.PATCH we increment the:
|
|
|
|
1. MAJOR version when we make incompatible changes,
|
|
2. MINOR version when we add functionality in a backwards-compatible manner
|
|
3. PATCH version when we make backwards-compatible bug fixes
|
|
|
|
## Download
|
|
|
|
You can find the latest OSEM releases on our [release page](https://github.com/openSUSE/osem/releases)
|
|
|
|
## Deploy to the cloud
|
|
|
|
The easiest way to deploy OSEM is to use one of the many platform as a service (PaaS) providers that support Ruby on Rails.
|
|
There are too many to list, here are a few we have seen OSEM deployed to:
|
|
|
|
- https://heroku.com
|
|
- https://render.com
|
|
- https://fly.io
|
|
|
|
## Deploy to your own server
|
|
|
|
We recommend to run OSEM in production with [mod\_passenger](https://www.phusionpassenger.com/download/#open_source)
|
|
and the [apache web-server](https://www.apache.org/). There are tons of guides on how to deploy rails apps on various
|
|
base operating systems, [check DuckDuckGo](https://duckduckgo.com/?t=h_&q=ruby+on+rails+apache+passenger). Of course there are also other options for the application server and reverse proxy, pick your poison.
|
|
|
|
## Deploy via docker/docker-compose
|
|
|
|
There is a rudimentary docker-compose configuration for production usage (`docker-compose.yml.production-example`). It brings OSEM up on port 80. It uses persistent storage volumes for all the data your users might create. You can start it with
|
|
|
|
1. Configure OSEM (at least `SECRET_KEY_BASE`)
|
|
```
|
|
cp dotenv.example .env.production
|
|
vim .env.production
|
|
```
|
|
1. Build the container image (every time you change code or config)
|
|
```
|
|
docker-compose -f docker-compose.yml.production-example build
|
|
```
|
|
1. Setup the database (only once)
|
|
```
|
|
docker-compose -f docker-compose.yml.production-example run --rm osem bundle exec rake db:setup
|
|
```
|
|
1. Start the services
|
|
```
|
|
docker-compose -f docker-compose.yml.production-example up
|
|
```
|
|
1. Visit http://0.0.0.0
|
|
|
|
## Configuration
|
|
OSEM is configured through environment variables and falls back to sensible defaults. See the [dotenv.example](https://github.com/openSUSE/osem/blob/master/dotenv.example) for all possible configuration options. However here is a list of things you most likely want to configure because otherwise things will not work as expected.
|
|
|
|
### `SECRET_KEY_BASE`
|
|
A [random string](https://www.randomlists.com/string?base=16&length=64&qty=1) to encrypt sessions/cookies.
|
|
|
|
### `OSEM_NAME`
|
|
The name of your OSEM installation
|
|
|
|
### How to send emails
|
|
By default OSEM tries to send emails over localhost.
|
|
|
|
#### `OSEM_HOSTNAME`
|
|
The host this OSEM instance runs on. This is used for generating URLs in emails sent.
|
|
|
|
#### `OSEM_EMAIL_ADDRESS`
|
|
The address OSEM uses to sending mails from.
|
|
|
|
#### `OSEM_SMTP_ADDRESS`
|
|
The mail server we send mail over. (*default*: localhost)
|
|
|
|
#### `OSEM_SMTP_AUTHENTICATION`
|
|
If your mail server requires authentication, you need to specify the authentication type here. This is a symbol and one of :plain (will send the password in the clear), :login (will send password Base64 encoded) or :cram_md5 (combines a Challenge/Response mechanism to exchange information and a cryptographic Message Digest 5 algorithm to hash important information)
|
|
|
|
#### `OSEM_SMTP_USERNAME`
|
|
If your mail server requires authentication, set the username in this setting.
|
|
|
|
#### `OSEM_SMTP_PASSWORD`
|
|
If your mail server requires authentication, set the password in this setting.
|