Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tiredofit/docker-formio-api
Dockerized Form server
https://github.com/tiredofit/docker-formio-api
alpine api docker form-io forms nodejs zabbix
Last synced: 3 days ago
JSON representation
Dockerized Form server
- Host: GitHub
- URL: https://github.com/tiredofit/docker-formio-api
- Owner: tiredofit
- License: mit
- Created: 2017-09-07T14:58:10.000Z (about 7 years ago)
- Default Branch: main
- Last Pushed: 2023-05-24T15:38:15.000Z (over 1 year ago)
- Last Synced: 2024-08-01T12:32:09.819Z (3 months ago)
- Topics: alpine, api, docker, form-io, forms, nodejs, zabbix
- Language: JavaScript
- Homepage:
- Size: 71.3 KB
- Stars: 17
- Watchers: 6
- Forks: 7
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
- awesome-starred - tiredofit/docker-formio-api - Dockerized Form server (nodejs)
README
# github.com/tiredofit/docker-formio-api
[![Docker Pulls](https://img.shields.io/docker/pulls/tiredofit/formio-api.svg)](https://hub.docker.com/r/tiredofit/formio-api)
[![Docker Stars](https://img.shields.io/docker/stars/tiredofit/formio-api.svg)](https://hub.docker.com/r/tiredofit/formio-api)## About
This will build a container for [Formio API Server](https://www.form.io/) A form server based on NodeJS.
This Container uses customized [Alpine](https://hub.docker.com/r/tiredofit/alpine) as a base image along with NodeJS 14.
[Changelog](CHANGELOG.md)
## Maintainer
- [Dave Conroy](https://github.com/tiredofit)
## Table of Contents
- [Introduction](#introduction)
- [Authors](#authors)
- [Table of Contents](#table-of-contents)
- [Prerequisites](#prerequisites)
- [Installation](#installation)
- [Quick Start](#quick-start)
- [Configuration](#configuration)
- [Persistent Storage](#persistent-storage)
- [Environment Variables](#environment-variables)
- [Mail Options](#mail-options)
- [Networking](#networking)
- [Maintenance](#maintenance)
- [Shell Access](#shell-access)
- [References](#references)## Prerequisites and Assumptions
- This image assumes that you are using a reverse proxy such as [jwilder/nginx-proxy](https://github.com/jwilder/nginx-proxy) and
optionally the [Let's Encrypt Proxy Companion @
https://github.com/JrCs/docker-letsencrypt-nginx-proxy-companion](https://github.com/JrCs/docker-letsencrypt-nginx-proxy-companion) in
order to serve your pages. However, it will run just fine on it's own if you map appropriate ports.- You must use have an seperate MongoDB container instance setup for storage of data before running this container on its own.
## Installation
Automated builds of the image are available on [Docker Hub](https://hub.docker.com/r/tiredofit/formio-api) and is the
recommended method of installation.```bash
docker pull docker.io/tiredofit/formio-api
```### Quick Start
* The quickest way to get started is using [docker-compose](https://docs.docker.com/compose/). See the examples folder for a working
[docker-compose.yml](examples/docker-compose.yml) that can be modified for development or production use.* Set various [environment variables](#environment-variables) to understand the capabilities of this image.
* Map [persistent storage](#data-volumes) for access to configuration and data files for backup.Once started, visit your defined hostname or IP Address and port and login using the values provided in the `ROOT_EMAIL` and
`ROOT_PASS` variables below.## Configuration
### Persistent Storage
| Parameter | Description |
| ---------------- | ---------------------------------------------- |
| `/app/templates` | Drop your exported Form.IO json templates here |### Environment Variables
Along with the Environment Variables from the [Base image](https://hub.docker.com/r/tiredofit/alpine) below is the complete list of
available options that can be used to customize your installation.| Parameter | Description |
| ------------------ | -------------------------------------------------------------- |
| `PROJECT_TEMPLATE` | The project template to use (leave empty for default template) |
| `ROOT_EMAIL` | Administrator email for login e.g. `[email protected]` |
| `ROOT_PASS` | Password for login e.g. `password` |
| `DB_USER` | Optional Database user for MongoDB e.g. `formio` |
| `DB_PASS` | Optional Database password for MongoDB e.g. `password` |
| `DB_PORT` | MongoDB Port - Default `27017` |
| `DB_SECRET` | MongoDB Encryption Secret - Default `secret` |
| `JWT_SECRET` | JWT Secret - Default `secret` |
| `JWT_EXPIRE_TIME` | JWT Expire Time in Seconds - Default `240` |#### Mail Options
| Parameter | Description |
| ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `EMAIL_TYPE` | How to send email - Options are `sendgrid`, `mandrill` - Default `sendgrid` |
| `EMAIL_USER` | Sendgrid Mail Username e.g. `[email protected]` |
| `EMAIL_PASS` | Sendgrid Mail password e.g. `password` |
| `EMAIL_KEY` | Mandrill API Key |
| `MAIL_SENDGRID_API_KEY` | (optional) Sendgrid API Key |
| `GMAIL_USER` | (optional) Gmail Username |
| `GMAIL_PASS` | (optional) Gmail Password |
| `MAIL_MANDRILL_API_KEY` | (optional) Mandrill API Key |
| `SMTP_HOST` | Hostname of SMTP Server |
| `SMTP_SSL` | Should SSL be used for connection to SMTP `TRUE` `FALSE` |
| `SMTP_USER` | SMTP Username e.g. `[email protected]` |
| `SMTP_PASS` | SMTP password e.g. `password` |
| `SMTP_PORT` | SMTP Port |
| `EMAIL_OVERRIDE` | Ignore all options and use this: `# example: {"transport":"smtp","settings":{"port":2525,"host":"smtp.mailtrap.io","auth":{"user":"23esdffd53ac","pass":"324csdfsdf989a"}}}` |### Networking
The following ports are exposed.
| Port | Description |
| ------ | ----------------- |
| `3001` | NodeJS API Server |## Maintenance
### Shell AccessFor debugging and maintenance purposes you may want access the containers shell.
```bash
docker exec -it (whatever your container name is e.g. formio) bash
```## References
* https://www.form.io/