forked from knadh/listmonk
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- New logo and favicon and new splash image + intro text in the README.
- Loading branch information
Showing
11 changed files
with
194 additions
and
256 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,81 +1,54 @@ | ||
![listmonk](https://user-images.githubusercontent.com/547147/60170989-41681f00-9827-11e9-93a8-a871a40be913.png) | ||
|
||
> listmonk is **alpha** software and may change and break. Use with caution. That said, it has been in active use at [zerodha.com](https://zerodha.com) for several months where it has processed hundreds of campaigns and tens of millions of e-mails. | ||
![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-splash](https://user-images.githubusercontent.com/547147/60884802-8189c180-a26b-11e9-85ee-622e5dee8869.png)](https://listmonk.app) | ||
[![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 and use | ||
> listmonk is **alpha** software and may change and break. Use with caution. That said, it has been in active use at [zerodha.com](https://zerodha.com) where it has processed hundreds of campaigns and tens of millions of e-mails. | ||
- Download the [latest release](https://github.com/knadh/listmonk/releases) for your platform and extract the listmonk binary. For example: `tar -C $HOME/listmonk -xzf listmonk_$VERSION_$OS_$ARCH.tar.gz` | ||
- Navigate to the directory containing the binary (`cd $HOME/listmonk`) and run `./listmonk --new-config` to generate a sample `config.toml` and add the DB configuration. | ||
- `./listmonk --install` to setup the DB. | ||
- Run `./listmonk` and visit `http://localhost:9000`. | ||
- Visit the `Settings` page to configure your instance. | ||
- Since there is no user auth yet, it's best to put listmonk behind a proxy like Nginx and setup basicauth on all endpoints except for the few endpoints that need to be public. Here is a [sample nginx config](https://github.com/knadh/listmonk/wiki/Production-Nginx-config) for production use. | ||
## Installation | ||
|
||
### Configuration and customization | ||
See the [configuration Wiki page](https://github.com/knadh/listmonk/wiki/Configuration). | ||
### Docker | ||
|
||
### Running on Docker | ||
The latest image is available on DockerHub at `listmonk/listmonk:latest`. Use the sample [docker-compose.yml](https://github.com/knadh/listmonk/blob/master/docker-compose.yml) to run listmonk and Postgres DB with docker-compose as follows: | ||
|
||
You can pull the official Docker Image from [Docker Hub](https://hub.docker.com/r/listmonk/listmonk). | ||
#### Demo | ||
`docker-compose up -d demo-db demo-app` | ||
|
||
You can checkout the [docker-compose.yml](docker-compose.yml) to get an idea of how to run `listmonk` with `PostgreSQL` together using Docker (also see [configuring with environment variables](https://github.com/knadh/listmonk/wiki/Configuration)). Please visit [INSTALL.md](INSTALL.md) for detailed instructions on how to setup Listmonk with Docker. | ||
The demo does not persist Postgres after the containers are removed. DO NOT use this demo setup in production. | ||
|
||
**Alternatively**, to run a demo of listmonk, you can quickly spin up a local setup with: | ||
#### Production | ||
- `docker-compose up db` to run the Postgres DB. | ||
- `docker-compose run --rm app ./listmonk --install` to setup the DB (or `--upgrade` to upgrade an existing DB) | ||
- Run `docker-compose up app` and visit `http://localhost:9000`. | ||
|
||
`docker-compose up -d demo-db demo-app`. | ||
More information on [docs](https://listmonk.app/docs). | ||
|
||
**NOTE:** This doesn't persist Postgres data after you stop and remove the container, this setup is intended only for demo. _DO NOT_ use the demo setup in production. | ||
__________________ | ||
|
||
### Other deployments | ||
### Binary | ||
- Download the [latest release](https://github.com/knadh/listmonk/releases) and extract the listmonk binary. | ||
- `./listmonk --new-config` to generate config.toml. Then, edit the file. | ||
- `./listmonk --install` to setup the Postgres DB (or `--upgrade` to upgrade an existing DB. Upgrades are idempotent and running them multiple times have no side effects). | ||
- Run `./listmonk` and visit `http://localhost:9000`. | ||
|
||
#### Heroku | ||
__________________ | ||
|
||
### 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://github.com/knadh/listmonk/wiki/Configuration) must be set using [environment configruation variables](https://devcenter.heroku.com/articles/config-vars). | ||
|
||
### Help and docs | ||
Please note that [configuration options](https://listmonk.app/docs/configuration) must be set using [environment configruation variables](https://devcenter.heroku.com/articles/config-vars). | ||
|
||
[Help and documentation](https://listmonk.app/docs) (work in progress). | ||
|
||
### Current features | ||
|
||
- Admin dashboard | ||
- Public, private, single and double optin lists (with optin campaigns) | ||
- Fast bulk subscriber import | ||
- Custom subscriber attributes | ||
- Subscriber querying and segmentation with ad-hoc SQL expressions | ||
- Subscriber data wipe / export privacy features | ||
- Rich programmable Go HTML templates and WYSIWYG editor | ||
- Media gallery (disk and S3 storage) | ||
- Multi-threaded multi-SMTP e-mail queues for fast campaign delivery | ||
- HTTP/JSON APIs for everything | ||
- Clicks and view tracking | ||
- and more ... | ||
|
||
### Todo | ||
|
||
- DB migrations | ||
- Bounce tracking | ||
- User auth, management, permissions | ||
- Ability to write raw campaign logs to a target | ||
- Analytics views and reports | ||
- Better widgets on dashboard | ||
- Tests! | ||
|
||
## 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. | ||
|
||
listmonk is free, open source software licensed under AGPLv3. There are several essential features such as user auth/management and bounce tracking that are currently missing. Contributions are welcome. | ||
|
||
The backend is written in Go and the frontend is in React with Ant Design for UI. See [developer setup](https://github.com/knadh/listmonk/wiki/Developer-setup) to get started. | ||
|
||
## License | ||
|
||
listmonk is licensed under the AGPL v3 license. |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Oops, something went wrong.