PhraseApp On-Premise Requirements
PhraseApp On-Premise is shipped as a Docker image containing our Ruby application. PhraseApp On-Premise can be deployed on Docker-compatible host systems or within a compatible virtualized system. Beside the Ruby application, several external services are required. If you do not have these services available within your hosting infrastructure, we offer basic guides to running them within docker for your convenience
Required external services
- MySQL 5.1 or newer: PhraseApp stores all data inside a MySQL database. You can configure the database to use in the “DATABASE_URL” config variable. You must allow the “local_infile” privilege for the configured database user as well as suffient rights to execute database migrations, e.g. use “GRANT ALL ON phraseapp.*” or limit to appropriate rights, but make sure to monitor startup errors from the PhraseApp process for privilege errors like “Select command denied to user” or similar.
- ElasticSearch >= 1.2.0 AND < 2.0: PhraseApp On-Premise will create indices starting with the prefix “phrase_…” during installation.
- SMTP/Mail-Server: Required to send notifications and alerts to users.
- Redis 2.8 or newer: Data caching.
Additionally, we recommend setting up Syslog or a similar service to receive application logs for monitoring and troubleshooting purpose.
The following resource recommendations are appropriate for up to 100 users on the system.
Your actual hardware requirements depend highly on your planned usage of the system and our sales team will help you figuring out the necessary dimensions of the system based on these key questions:
- How many users access the system?
- How large are your project’s locale files?
- How frequently do users upload and download data?
|File System||20 GB|
|Database Storage||20 GB|
|Elasticsearch Storage||10 GB|
|Redis Storage||1 GB|
You can decide whether to expose the Ruby application running inside the PhraseApp On-Premise Docker container directly to the external interface of your Docker host or not. For example you can use a local web server to relay requests to the application and terminate TLS connections. The port you use for incoming requests is up to your configuration preferences, standard for HTTP would be 80 and for HTTPS 443. The Ruby application inside the container binds to the internal container port 8080.
The container must be able to access the ports of external services. We list the services’ standard ports for convenience, your local port configuration may be different: