Ghosler enables easy sending of newsletters using your own email and SMTP credentials. This is ideal when you are just starting out and have a small to moderate user base.
It is helpful for bypassing the limitations of the hardcoded Mailgun setup and supports many analytical features, along with the capability to use multiple email accounts.
NPM
Pre-requisites: Node 18^
& pm2
installed.
CLI
-npm install -g ghosler-cli
Ghosler
, make sure its empty & run below command -ghosler install
Docker
Execute this script to install or update Ghosler
via Docker
-
curl -sSL https://raw.githubusercontent.com/ItzNotABug/ghosler/master/docker-install.sh -o docker-install.sh && chmod +x docker-install.sh && ./docker-install.sh
If you already have docker-install.sh
on your system, simply execute -
./docker-install.sh
Now navigate to main site & edit required settings after completing the Setup instructions below.
https://your-domain.com
.
PORT
is 2369
ghosler
, Password - admin
Webhook
in the Ghost Integration (if it#GhoslerIgnore
Now as soon as you publish your Post, it will be sent to your Subscribers who have enabled receiving emails.
Ghosler defaults to using a local configuration file, config.local.json
, if it exists. The structure of this file is
identical to that in config.production.json file.
Note: config.local.json
should be placed inside the configuration
directory.
Local Builds: Make sure to execute -
npm run buildcss
to generate a minified css if you changed any .ejs
files.
If you don't, CSS based changes won't take effect. This also makes sure that the final CSS bundle includes only what's
needed.
And use below to run Ghosler
-
npm run dev
You can use below for combining the above commands -
npm run cleanstart
docker build -t ghosler . --no-cache
After a successful local build, run the container -
docker run --rm name ghosler -d -p 2369:2369 -v ghosler-logs:/usr/src/app/.logs -v ghosler-analytics:/usr/src/app/files -v ghosler-configuration:/usr/src/app/configuration ghosler
Note: For testing the Docker container over a publicly accessible URL, I used Cloudflare Tunnel
as it doesn't have
a startup page like ngrok
or the VSCode
's dev tunnel and works good for testing the Ghost Webhooks.
Assuming you have TryCloudflare CLI
installed, you can do something like this -
cloudflared tunnel --url http://localhost:2369
This command will initialize a tunnel and return a URL that you can use to test. For more info, see - TryCloudflare Tunnel.
If you want to customize the newsletter template even more, follow the steps -
Base Template
from settings itselfβ
the project!