continuous-integration/drone/push Build is passing Details
|1 day ago|
|assets||4 days ago|
|config||1 month ago|
|lib||1 day ago|
|priv||2 days ago|
|test||1 day ago|
|.credo.exs||1 year ago|
|.drone.yml||1 month ago|
|.formatter.exs||12 months ago|
|.gitignore||1 month ago|
|.tool-versions||2 months ago|
|CHANGELOG.md||1 day ago|
|CONTRIBUTING.md||2 days ago|
|Dockerfile||1 month ago|
|LICENSE.md||1 year ago|
|README.md||2 days ago|
|docker-compose.yml||1 month ago|
|home.png||9 months ago|
|mix.exs||2 days ago|
|mix.lock||2 weeks ago|
The self-hosted firearm tracker website.
- 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. Your data stays with you, period
- Simple: Access from any internet-capable device
- Create containers to store your ammunition, and tag them with custom tags
- Add ammunition types to Cannery, and then ammo packs to your containers
- Stage ammo packs for range day and track your usage with shot records
- Invitations via invite tokens or public registration
- Install Docker Compose or alternatively Docker Desktop on your machine.
- Copy the example docker-compose.yml. into your local machine where you want. Bind mounts are created in the same directory by default.
- Set the configuration variables in
docker-compose.yml. You'll need to run
docker run -it shibaobun/cannery /app/priv/random.shto generate a new secret key base.
docker-compose up -dto start the container!
The first created user will be created as an admin.
Finally, reverse proxy to port
4000 of the container. If you're using a reverse proxy in another docker container, you can reverse proxy to
http://cannery:4000. Otherwise, you'll need to modify the
docker-compose.yml to bind the port to your local machine.
For instance, instead of
expose: - "4000"
ports: - "127.0.0.1:4000:4000"
and reverse proxy to
You can use the following environment variables to configure Cannery in docker-compose.yml.
HOST: External url to generate links with. Must be set with your hosted domain name! I.e.
PORT: Internal port to bind to. Defaults to
4000. Must be reverse proxied!
DATABASE_URL: Controls the database url to connect to. Defaults to
ECTO_IPV6: If set to
true, Ecto should use ipv6 to connect to PostgreSQL. Defaults to
POOL_SIZE: Controls the pool size to use with PostgreSQL. Defaults to
SECRET_KEY_BASE: Secret key base used to sign cookies. Must be generated with
docker run -it shibaobun/cannery mix phx.gen.secretand set for server to start.
REGISTRATION: Controls if user sign-up should be invite only or set to public. Set to
publicto enable public registration. Defaults to
LOCALE: Sets a custom default locale. Defaults to
- Available options:
- Available options:
SMTP_HOST: The url for your SMTP email provider. Must be set
SMTP_PORT: The port for your SMTP relay. Defaults to
SMTP_USERNAME: The username for your SMTP relay. Must be set!
SMTP_PASSWORD: The password for your SMTP relay. Must be set!
SMTP_SSL: Set to
trueto enable SSL for emails. Defaults to
EMAIL_FROM: Sets the sender email in sent emails. Defaults to
HOSTwas previously defined.
EMAIL_NAME: Sets the sender name in sent emails. Defaults to "Cannery".
Contributions are greatly appreciated, no ability to code needed! You can browse the Contribution Guide to learn more.
I can be contacted at email@example.com, or on the fediverse at @firstname.lastname@example.org. Thank you!
Cannery is licensed under AGPLv3 or later. A copy of the latest version of the license can be found at LICENSE.md.
- Gitea: Main repo, feature requests and bug reports
- Github: Source code mirror, please don't open pull requests to this repository
- Weblate: Contribute to translations!