forked from shibao/cannery
		
	
			
				
					
						
					
					46ead41bceed181d169a5d1c979a9f3cfd413d61
				
			
			
		
	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 example- docker-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 to- localhost.
- PORT: External port for urls. Defaults to- 443.
- DATABASE_URL: Controls the database url to connect to. Defaults to- ecto://postgres:postgres@localhost/cannery_dev.
- REGISTRATION: Controls if user sign-up should be invite only or set to public. Set to- publicto enable public registration. Defaults to- invite.
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 to- localhost.
- PORT: Internal port to bind to. Defaults to- 4000and 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- 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- invite.
Description
				
					Languages
				
				
								
								
									Elixir
								
								79%
							
						
							
								
								
									HTML
								
								18.7%
							
						
							
								
								
									JavaScript
								
								1.4%
							
						
							
								
								
									SCSS
								
								0.7%
							
						
							
								
								
									Dockerfile
								
								0.2%