Compare commits

...

3 Commits

Author SHA1 Message Date
jorge 1ec9611ebb added external link to HOWTOS in readme 2021-07-14 14:46:34 +02:00
jorge 9fa97c8303 documentation in README: howto postgres, lists manage and user management
added documentation in the readme, howto postgres, lists manage and user management
2021-07-14 13:34:46 +02:00
jorge-vitrubio 51c7b5a30d binary debian run and upgrade instructions 2021-05-31 10:30:17 +02:00
1 changed files with 80 additions and 10 deletions

View File

@ -1,10 +1,7 @@
<a href="https://zerodha.tech"><img src="https://zerodha.tech/static/images/github-badge.svg" align="right" /></a>
![listmonk](https://user-images.githubusercontent.com/547147/89733021-43fbf700-da70-11ea-82e4-e98cb5010257.png)
listmonk is a standalone, self-hosted, newsletter and mailing list manager. It is fast, feature-rich, and packed into a single binary. It uses a PostgreSQL database as its data store.
[![listmonk-dashboard](https://user-images.githubusercontent.com/547147/89733057-87566580-da70-11ea-8160-855f6f046a55.png)](https://listmonk.app)
Visit [listmonk.app](https://listmonk.app)
## Installation
@ -77,18 +74,91 @@ oncen checked it works, stop the process.
[Install]
WantedBy=multi-user.target
```
- enable and run the service `sudo systemctl enable listmonk.service` and then `sudo systemctl start listmonk.service`
#### upgrade (the binary install)
- Download the [latest release](https://github.com/knadh/listmonk/releases) and extract the listmonk binary.
- stop `listmonk` or it's service if run as so `sudo systemctl stop listmonk.service`
- move the binary to executing destination.
- change ownership of the files to `www-data` or whatever user you have assigned the webserver `chown -R www-data:www-data listmonk`
- `./listmonk --upgrade` to upgrade an existing DB. (Upgrades are idempotent and running them multiple times have no side effects).
- start again the binary or the service `sudo systemctl start listmonk.service`
__________________
## Postgres
### connect to db
```bash
su postres -
```
as user `postgres` execute
```bash
psql
```
inside postgres use these commands
- `\l` to list databases
- `\c <databasename>` to use a database
- `\dt` to list relations/tables
### See the lists
```postgres
SELECT * from lists;
```
will show something like
```postgres
id | uuid | name | type | optin | tags | created_at | updated_at
----+--------------------------------------+------------------------------------------------------------+---------+--------+--------+-------------------------------+-------------------------------
1 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | Lista de prueba | private | single | {test} | 2021-05-19 15:33:08.503002+02 | 2021-05-27 12:05:28.201633+02
3 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | Agendas | public | single | | 2021-06-03 17:18:58.398437+02 | 2021-06-03 17:42:13.446523+02
4 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | Prensa | public | single | | 2021-06-03 17:19:11.233554+02 | 2021-07-13 18:04:58.078138+02
5 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | Instituciones, Festivales, etc | public | single | | 2021-06-03 17:19:38.707663+02 | 2021-07-13 18:41:34.764095+02
6 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | Newsletter | public | single | | 2021-06-03 17:19:51.514315+02 | 2021-07-13 18:44:15.855554+02
7 | xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | Antiguas socias y colaboradoras | public | single | | 2021-06-03 17:20:15.807685+02 | 2021-07-13 18:47:55.651608+02
(6 rows)
```
### Manage subscribers list
once connected to database with `\c <databasename>` and promt changes to `<databasename>=#`
select all users from subscribers lists
```postgres
SELECT * subscriber_lists;
```
will show something like this
```postgres
subscriber_id | list_id | status | created_at | updated_at
---------------+---------+-------------+-------------------------------+-------------------------------
646 | 7 | confirmed | 2021-07-13 18:47:55.616239+02 | 2021-07-13 18:47:55.616239+02
45 | 4 | confirmed | 2021-07-13 18:04:57.974174+02 | 2021-07-13 18:04:57.974174+02
9 | 3 | confirmed | 2021-06-03 17:34:34.714387+02 | 2021-06-03 17:42:13.431435+02
3148 | 7 | confirmed | 2021-07-13 18:47:55.616239+02 | 2021-07-13 18:47:55.616239+02
7 | 7 | unconfirmed | 2021-06-08 17:17:26.372759+02 | 2021-06-08 17:17:26.372759+02
1232 | 7 | confirmed | 2021-07-13 18:47:55.616239+02 | 2021-07-13 18:47:55.616239+02
7 | 5 | confirmed | 2021-06-08 17:17:26.372759+02 | 2021-06-08 17:17:26.372759+02
```
#### confirm users
modify the status from `unconfirmed` to `confirmed`
```postgres
UPDATE subscriber_lists SET status='confirmed' WHERE list_id=<number>;
```
change the `<number>` for the one you see under `list_id`
__________________
### Heroku
Using the [Nginx buildpack](https://github.com/heroku/heroku-buildpack-nginx) can be used to deploy listmonk on Heroku and use Nginx as a proxy to setup basicauth.
This one-click [Heroku deploy button](https://github.com/bumi/listmonk-heroku) provides an automated default deployment.
[![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/bumi/listmonk-heroku)
Please note that [configuration options](https://listmonk.app/docs/configuration) must be set using [environment configuration variables](https://devcenter.heroku.com/articles/config-vars).
Using the [Nginx buildpack](https://github.com/heroku/heroku-buildpack-nginx) can be used to deploy listmonk on Heroku and use Nginx as a proxy to setup basicauth. [Heroku deploy button](https://github.com/bumi/listmonk-heroku) provides an automated default deployment.
### HOWTOS
[HOWTO set up listmonk](https://yasoob.me/posts/setting-up-listmonk-opensource-newsletter-mailing/)
[HOWTO import mailchimp subscribers](https://yasoob.me/posts/setting-up-listmonk-opensource-newsletter-mailing/#importing-old-subscribers)
## Developers
listmonk is a free and open source software licensed under AGPLv3. If you are interested in contributing, refer to the [developer setup](https://listmonk.app/docs/developer-setup). The backend is written in Go and the frontend is Vue with Buefy for UI.