FormPress is an innovative, and open source form builder which lets you safely collect data through custom forms. Awesome!
- Simple yet modern UI
- Drag and drop elements
- File submission
FormPress is a combination of;
- node.js - the ubiquitous JS framework for backend chores
- Express - convenient Node.js web app framework
- React - quite popular JS library for the frontend
- MySQL - for the database management
docker compose
intended to be used in local development environment. For production purposes, please refer to the /infra/example
folder
Deployment of FormPress for development purposes is fairly easy. So as to create the required images and run the containers:
cd FormPress
cp .env.example .env
docker compose up
And that's it. To verify that the process ran smoothly, in your browser, please navigate to:
http://localhost:3000
Use following default credentials for logging in
username: admin@example.com
password: CHANGEME
Initial credentials can be updated by changing relevant env variables.
To get the full experience of FormPress in terms of its features, a number of environment variables has to be set. Nevertheless, the app will run just fine but with fewer features.
Environment variables are added by adding lines to .env file in formpress root directory. Open .env file (if it does not exist, you can create one) with your favourite text editor and add the following lines:
This variable is essential for the login. It can be set to anything, in this example we've set it to SOMESUPERHARDTOGUESSSECRET. Seriously.
JWT_SECRET=SOMESUPERHARDTOGUESSSECRET
For the time being, FormPress uses SendGrid fot the mail delivery.
SENDGRID_API_KEY=SENDGRIDAPIKEY
Features disabled if this variable is unset:
- Verification e-mail during sign-up
- Password reset e-mail
- Submission notification e-mail to the form owner
This variable is the path to the local OAuth2 credentials file. This is required to authenticate Google Cloud Platform.
GOOGLE_SERVICE_ACCOUNT_CREDENTIALS=base64encodedserviceaccountjsonfile
Features disabled if this variable is unset:
- File upload element in forms
FormPress login page offers Google Sign-In as an alternative (which will be discontinued as of March 31, 2023.)
GOOGLE_CREDENTIALS_CLIENT_ID=googleLoginClientID
Features disabled if this variable is unset:
- Google Sign-In
File uploads in forms are stored in Google Cloud Storage. This variable is required for
FILE_UPLOAD_BUCKET=BUCKET
Features disabled if this variable is unset:
- File upload
These are the environment variables for admin account as the name suggests. Note, these will only take effect on first run, as initial admin credentials will be created by a migration.
ADMINEMAIL=someEmail
ADMINPASSWORD=somepassword
FormPress is licensed under MIT