cmd/nonshy | ||
pkg | ||
web | ||
.gitignore | ||
CONTRIBUTING.md | ||
go.mod | ||
go.sum | ||
LICENSE | ||
Makefile | ||
README.md |
nonshy website
This is the source code to the main 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 server. See the CONTRIBUTING.md file for details.
Dependencies
You may need to run the following services along with this app:
- A Redis cache server: redis.io
- (Optional) a PostgreSQL database: 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. You can probably get it from your package manager, e.g.
- macOS:
brew install golang
with homebrew: 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 dependenciesmake build
: builds the program to ./nonshymake 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:
$ 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.