forked from shibao/cannery
e4522e4a896b9f299d2ed92cbf3cb84bd73ce716
Cannery is a personal ammo manager that adjusts to your own needs.
- Easy to Use: Cannery lets you easily keep an eye on your ammo levels before and after range day
- Secure: Self-host your own instance, or use an instance from someone you trust.
- Simple: Access from any internet-capable device
Features
- User Registration/Sign in via
phx_gen_auth Dockerfileand exampledocker-compose.yml- Automatic migrations in
MIX_ENV=prodor Docker image - JS linting with standard.js, HEEx linting with heex_formatter
- Customizable invite tokens or public registration via
REGISTRATIONenvironment variable.
Installation
- Install Docker Compose or alternatively Docker Desktop on your machine.
- Copy the example
docker-compose.ymlinto your local machine where you want
Local Development
- Clone the repo
- Run
mix setup - Run
mix phx.serverto start the development server
Configuration
For development, I recommend setting environment variables with direnv.
MIX_ENV=dev
In dev mode, Cannery will listen for these environment variables on compile.
HOST: External url to generate links with. Set these especially if you're behind a reverse proxy. Defaults tolocalhost.PORT: External port for urls. Defaults to443.DATABASE_URL: Controls the database url to connect to. Defaults toecto://postgres:postgres@localhost/cannery_dev.REGISTRATION: Controls if user sign-up should be invite only or set to public. Set topublicto enable public registration. Defaults toinvite.
MIX_ENV=prod
In prod mode (or in the Docker container), Cannery will listen for these environment variables at runtime.
HOST: External url to generate links with. Set these especially if you're behind a reverse proxy. Defaults tolocalhost.PORT: Internal port to bind to. Defaults to4000and attempts to bind to0.0.0.0. Must be reverse proxied!DATABASE_URL: Controls the database url to connect to. Defaults toecto://postgres:postgres@cannery-db/cannery.ECTO_IPV6: Controls if Ecto should use ipv6 to connect to PostgreSQL. Defaults tofalse.POOL_SIZE: Controls the pool size to use with PostgreSQL. Defaults to10.SECRET_KEY_BASE: Secret key base used to sign cookies. Must be generated withmix phx.gen.secretand set for server to start.REGISTRATION: Controls if user sign-up should be invite only or set to public. Set topublicto enable public registration. Defaults toinvite.
Description
Languages
Elixir
79%
HTML
18.7%
JavaScript
1.4%
SCSS
0.7%
Dockerfile
0.2%