elestio/opnform

Verified Publisher

By Elestio

Updated about 1 year ago

OpnForm, verified and packaged by Elestio

Image
Content Management System
Integration & Delivery
1

835

elest.io

DiscordElestio examplesBlog

OpnForm, verified and packaged by Elestio

OpnForm, create beautiful forms and share them anywhere. It super fast, you don't need to know how to code. Get started for free! opnform

Deploy a fully managed OpnForm on elest.io if you want automated backups, reverse proxy with SSL termination, firewall, automated OS & Software updates, and a team of Linux experts and open source enthusiasts to ensure your services are always safe, and functional.

deploy

Why use Elestio images?

  • Elestio stays in sync with updates from the original source and quickly releases new versions of this image through our automated processes.
  • Elestio images provide timely access to the most recent bug fixes and features.
  • Our team performs quality control checks to ensure the products we release meet our high standards.

Usage

Git clone

You can deploy it easily with the following command:

git clone https://github.com/elestio-examples/opnform.git

Copy the .env file from tests folder to the project directory

cp ./tests/.env ./.env

Edit the .env file with your own values.

Run the project with the following commands

docker-compose up -d
./scripts/postInstall.sh

You can access the Web UI at: http://your-domain:35551

Docker-compose

Here are some example snippets to help you get started creating a container.

version: "3.7"
services:

minio:
    image: minio/minio
    restart: always
    command: server /data
    ports:
        - "172.17.0.1:9999:9000"
    environment:
        MINIO_ROOT_USER: minio
        MINIO_ROOT_PASSWORD: ${ADMIN_PASSWORD}
    volumes:
        - ./s3_data:/data

createbuckets:
    image: minio/mc
    depends_on:
        - minio
    entrypoint: >
        /bin/sh -c "
        sleep 10;
        /usr/bin/mc config host add minio http://minio:9000 minio ${ADMIN_PASSWORD};
        /usr/bin/mc mb minio/opnform;
        /usr/bin/mc anonymous set public minio/opnform/public;
        exit 0;
        "

opnform:
    image: elestio/opnform:latest
    restart: always
    volumes:
        - ./forms:/persist
        - ./.env:/app/.env
    ports:
        - 172.17.0.1:35551:80
    depends_on:
        - postgres
redis:
    image: elestio/redis:7.0
    restart: always
    volumes:
        - ./redis-data:/data
postgres:
    image: elestio/postgres:15
    restart: always
    volumes:
        - ./postgres-data:/var/lib/postgresql/data
    environment:
        - POSTGRES_DB=${DB_DATABASE}
        - POSTGRES_USER=${DB_USERNAME}
        - POSTGRES_PASSWORD=${DB_PASSWORD}
    ports:
        - "172.17.0.1:27779:5432"
Environment variables
VariableValue (example)
SOFTWARE_VERSION_TAGlatest
DOMAINyour.domain.com
ADMIN_EMAILadmin@email.com
ADMIN_PASSWORDyour-password
APP_NAMEOpnForm
APP_ENVlocal
APP_DEBUGfalse
APP_LOG_LEVELdebug
APP_URLhttps://your.domain.com
LOG_CHANNELerrorlog
LOG_LEVELdebug
DB_CONNECTIONpgsql
DB_HOSTpostgres
DB_PORT5432
DB_DATABASEopnform
DB_USERNAMEpostgres
DB_PASSWORDyour-password
FILESYSTEM_DRIVERs3
FILESYSTEM_DISKs3
BROADCAST_DRIVERlog
CACHE_DRIVERredis
QUEUE_CONNECTIONredis
SESSION_DRIVERfile
SESSION_LIFETIME120
REDIS_HOSTredis
REDIS_PASSWORDnull
REDIS_PORT6379
MAIL_MAILERsmtp
MAIL_HOSTyour.smtp.host
MAIL_PORTyour.smtp.port
MAIL_USERNAMEnull
MAIL_PASSWORDnull
MAIL_ENCRYPTIONnull
MAIL_FROM_ADDRESSfrom@email.com
MAIL_FROM_NAMEOpnForm
JWT_TTL1440
AWS_ACCESS_KEY_IDminio
AWS_SECRET_ACCESS_KEYyour-password
AWS_URLhttps://your.domain.com:58624
AWS_ENDPOINThttps://your.domain.com:58624
AWS_BUCKETopnform
AWS_DEFAULT_REGIONus-east-1
AWS_USE_PATH_STYLE_ENDPOINTtrue
APP_KEYlet it blank, it will be automatically filled
JWT_SECRETlet it blank, it will be automatically filled

Maintenance

Logging

The Elestio OpnForm Docker image sends the container logs to stdout. To view the logs, you can use the following command:

docker-compose logs -f

To stop the stack you can use the following command:

docker-compose down

Backup and Restore with Docker Compose

To make backup and restore operations easier, we are using folder volume mounts. You can simply stop your stack with docker-compose down, then backup all the files and subfolders in the folder near the docker-compose.yml file.

Creating a ZIP Archive For example, if you want to create a ZIP archive, navigate to the folder where you have your docker-compose.yml file and use this command:

zip -r myarchive.zip .

Restoring from ZIP Archive To restore from a ZIP archive, unzip the archive into the original folder using the following command:

unzip myarchive.zip -d /path/to/original/folder

Starting Your Stack Once your backup is complete, you can start your stack again with the following command:

docker-compose up -d

That's it! With these simple steps, you can easily backup and restore your data volumes using Docker Compose.

Links

Docker Pull Command

docker pull elestio/opnform