Self hosted newsletter mail system written in go.
This application consists of an Rest API written in Go and a dashboard application which is written in React. The whole app resides in this single repository.
The application depends on several tools and services:
- go
- MySQL (or sqlite)
- NSQ
- yarn
- statik
- Docker and docker-compose (optional)
statik
is used to generate the DB migration assets (sql files)
go get github.com/rakyll/statik
-
Run
make driver=mysql gen
to generate the migration assets (run with driver=sqlite3 for testing). -
Run
make build
to build the executable files, the files will be located in thebin
folder. -
Run MySQL and NSQ services (see the docker-compose.yaml file).
-
See the
.example.env
file to see which env variables should be set for the application to run.
-
Run
docker-compose up -d
-
Run
make run_mailbadger
-
Navigate to
/dashboard
directory -
Run
yarn
(Install packages for the frontend project) -
Run
yarn start
to start the frontend project