LibreNews Tools by blahaj.land/eryn
A collection of tools for LibreNews.
Blahaj.Land is proud to power LibreNews, a new news platform owned by Niccolo Venerandi, maintained by eryn from blahaj.land.
LibreNews runs a Ghost CMS instance, but since Ghost requires a pretty expensive bulkmail service, I have created a set of tools that allow Nicco to send newsletters to his subscribers without the use of Mailgun.
Fetches all subscribers from Ghost and syncs them to Listmonk while preserving their subscription status. Always in sync.
Fetches all articles from Ghost and syncs them to Listmonk as new campaigns.
Converts markdown files to Ghost articles and uploads them to the Ghost API.
This is by far the most complex tool in the set, as it has to handle uploading zip archives containing the Markdown files and their attachments, and then converting them to Ghost articles.
Made specifically for LibreNews, as it expects a certain file structure matching Nicco's workflow.
- A server with python 3.11 installed
- A Ghost instance
- A Listmonk instance
- A reverse proxy for the Md to Ghost article converter tool
- By default, the converter runs on port 5001, you can change this by editing the `import_post.py` file
- Clone the repository
- Install the requirements
pip install -r requirements.txt
- Rename
config.example.conf
toconfig.conf
and fill in the required fields - Additonally you are going to have to modify the
sync_articles.py
andsync_news_members.py
files to match your Ghost subscription tiers and Listmonk list IDs.
This is because the tools were made specifically for LibreNews and are not very flexible.
I might make them more flexible in the future, but for now, you are going to have to modify the files yourself.
- Run the subscriber sync tool
python sync_news_members.py
- Run the article sync tool
python sync_articles.py
- Run the markdown to Ghost article converter
python import_post.py
This project is focused entirely on LibreNews, and unfortunately I will not be providing support for other projects, as my day only has 24 hours.
I'd be glad to look over any opened issues but please don't ask me for help. (I'm sorry)