The self-hosted firearm tracker app
Go to file
2022-01-31 23:49:22 -05:00
assets mix format 2022-01-23 22:51:56 -05:00
config add drone ci 2022-01-23 22:51:56 -05:00
lib fix missing alias 2022-01-31 23:49:22 -05:00
priv - store ammo type grain as integer 2022-01-31 22:29:09 -05:00
test fix dialyzer, credo and format 2022-01-23 22:51:56 -05:00
.credo.exs add default credo 2021-09-12 17:57:56 -04:00
.drone.yml add drone ci 2022-01-23 22:51:56 -05:00
.formatter.exs disable heex formatter 2022-01-31 21:53:01 -05:00
.gitignore add .vscode dir to gitignore 2022-01-27 00:57:03 -05:00
.tool-versions add heex formatter 2022-01-23 22:50:06 -05:00
CONTRIBUTING.md add types to ecto changeset specs 2022-01-31 23:45:00 -05:00
docker-compose.yml update readme and docker-compose.yml 2022-01-23 22:51:56 -05:00
Dockerfile add touchless docker deploys 2021-09-04 16:16:39 -04:00
mix.exs add standard js for linting and tests 2022-01-23 22:51:56 -05:00
mix.lock add heex formatter 2022-01-23 22:50:06 -05:00
README.md add contributing guide 2022-01-31 20:04:38 -05:00

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

  • Create containers to store your ammunition, and tag them with custom tags
  • Add ammunition types to Cannery, and then ammunition to your containers
  • Customizable invite tokens or public registration via the REGISTRATION environment variable.

Installation

  1. Install Docker Compose or alternatively Docker Desktop on your machine.
  2. Copy the example docker-compose.yml into your local machine where you want. Bind mounts are created in the same directory by default.
  3. Use docker-compose up or docker-compose up -d to start the container.

Reverse proxy

Finally, reverse proxy to port 80 of the container. If you're using a reverse proxy in another docker container, you can reverse proxy to http://cannery:80. Otherwise, you'll need to modify the docker-compose.yml to bind the port to your local machine.

For instance, instead of

expose:
  - "80"

use

ports:
  - "127.0.0.1:80:80"

and reverse proxy to http://localhost:80.

Configuration

You can use the following environment variables to configure Cannery in docker-compose.yml.

  • HOST: External url to generate links with. Set these especially if you're behind a reverse proxy. Defaults to localhost.
  • PORT: Internal port to bind to. Defaults to 80 and attempts to bind to 0.0.0.0. Must be reverse proxied!
  • DATABASE_URL: Controls the database url to connect to. Defaults to ecto://postgres:postgres@cannery-db/cannery.
  • ECTO_IPV6: Controls if Ecto should use ipv6 to connect to PostgreSQL. Defaults to false.
  • POOL_SIZE: Controls the pool size to use with PostgreSQL. Defaults to 10.
  • SECRET_KEY_BASE: Secret key base used to sign cookies. Must be generated with docker exec -it cannery mix phx.gen.secret and set for server to start.
  • REGISTRATION: Controls if user sign-up should be invite only or set to public. Set to public to enable public registration. Defaults to invite.

Contribution

Contributions are greatly appreciated! You can browse the Contribution Guide to learn more.

I can be contacted at shibao@bubbletea.dev, or on the fediverse at @shibao@misskey.bubbletea.dev. Thank you!

--

Build
Status