- JavaScript 43.7%
- HTML 26.5%
- CSS 21.3%
- Shell 5.3%
- Dockerfile 3.2%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| assets | ||
| ghost-admin | ||
| .env-example | ||
| .gitignore | ||
| demo.html | ||
| docker-compose.yml | ||
| Dockerfile | ||
| ghost-contact-svc.js | ||
| ghost-contact.service | ||
| install.sh | ||
| LICENSE | ||
| README.md | ||
| README.md.bak | ||
| test.sh | ||
This is a fork of ghost-contact-form by styxlab — who have since moved to their own self-hosted Forgejo. The original GitHub repo may no longer be maintained. It's used here to power the contact form on tobiaseigen.org.
📖 Setup runboko): Set up a self-hosted contact form on mailcow/nginx
ghost-contact-form
Add a beautiful, fully functional contact form to your Ghost blog or website without paying for external services.
Not running on Ghost? This solution also works with Gatsby, Hugo, Hexo, Nuxt and any other static site generator.
Tutorial
Prerequisites
- A supported version of Node.js
- npm to manage packages
Quickstart Install
$ git clone https://github.com/styxlab/ghost-contact-form.git
$ cd ghost-contact-form
$ sh install.sh
Configure
Adapt the .env file to your needs. The following variables must be defined.
SMTP_HOST = mail.server.com
SMTP_USER = user@server.com
SMTP_PASS = strong password
ALLOW_ORIGIN = https://your-blog.com
EMAIL_FROM = noreply@your-blog.com
EMAIL_TO = your@email.com
Additionally, you can add a port variable PORT = , if you want to change the default port 7000 to something else.
Usage
$ node ghost-contact-svc.js
You should see the message Listening on http://localhost:7000.
Test Locally
Deploy (More detailed info in the tutorial)
- copy the work folder
ghost-contact-formto your server - use
ghost-contact.serviceas a starting point for runningghost-contact-svc.jsas a systemd daemon - configure your web-server to map endpoint
http://localhost:7000/to a public endpoint, e.g.https://api.your-blog.com/ - Use the files in folder
ghost-adminto configure your Ghost front-end - Other front-end configuration files upon request!