75 lines
2.3 KiB
Markdown
75 lines
2.3 KiB
Markdown
# nonshy website
|
|
|
|
This is the source code to the main [nonshy.com](https://www.nonshy.com/)
|
|
website. It is written in Go and released under the GNU General Public
|
|
License.
|
|
|
|
This website is open source and if you'd like to help work on it (fix bugs
|
|
or contribute new features), you may sign up an account on the
|
|
[code.nonshy.com](https://code.nonshy.com/) server. See the
|
|
[CONTRIBUTING.md](CONTRIBUTING.md) file for details.
|
|
|
|
## Dependencies
|
|
|
|
You may need to run the following services along with this app:
|
|
|
|
* A **Redis cache** server: [redis.io](https://redis.io)
|
|
* (Optional) a **PostgreSQL database:** [postgresql.org](https://www.postgresql.org/)
|
|
|
|
The website can also run out of a local SQLite database which is convenient
|
|
for local development. The production server runs on PostgreSQL and the
|
|
web app is primarily designed for that.
|
|
|
|
## Building the App
|
|
|
|
This app is written in Go: [go.dev](https://go.dev). You can probably
|
|
get it from your package manager, e.g.
|
|
|
|
* macOS: `brew install golang` with homebrew: [brew.sh](https://brew.sh)
|
|
* Linux: it's in your package manager, e.g. `apt install golang`
|
|
|
|
Use the Makefile (with GNU `make` or similar):
|
|
|
|
* `make setup`: install Go dependencies
|
|
* `make build`: builds the program to ./nonshy
|
|
* `make run`: run the app from Go sources in debug mode
|
|
|
|
Or read the Makefile to see what the underlying `go` commands are,
|
|
e.g. `go run cmd/nonshy/main.go web`
|
|
|
|
## Configuring
|
|
|
|
On first run it will generate a `settings.json` file in the current
|
|
working directory (which is intended to be the root of the git clone,
|
|
with the ./web folder). Edit it to configure mail settings or choose
|
|
a database.
|
|
|
|
For simple local development, just set `"UseSQLite": true` and the
|
|
app will run with a SQLite database.
|
|
|
|
## Usage
|
|
|
|
The `nonshy` binary has sub-commands to either run the web server
|
|
or perform maintenance tasks such as creating admin user accounts.
|
|
|
|
Run `nonshy --help` for its documentation.
|
|
|
|
Run `nonshy web` to start the web server.
|
|
|
|
## Create Admin User Accounts
|
|
|
|
Use the `nonshy user add` command like so:
|
|
|
|
```bash
|
|
$ nonshy user add --admin \
|
|
--email name@domain.com \
|
|
--password secret \
|
|
--username admin
|
|
```
|
|
|
|
Shorthand options `-e`, `-p` and `-u` can work in place of the longer
|
|
options `--email`, `--password` and `--username` respectively.
|
|
|
|
## License
|
|
|
|
GPLv3. |