{"id":13693074,"url":"https://github.com/xtagon/nagini","last_synced_at":"2026-01-22T11:11:25.302Z","repository":{"id":139001940,"uuid":"171613738","full_name":"xtagon/nagini","owner":"xtagon","description":"Nagini - Battlesnake AI written in Elixir","archived":false,"fork":false,"pushed_at":"2025-08-27T00:02:34.000Z","size":385,"stargazers_count":4,"open_issues_count":7,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-10T05:30:49.617Z","etag":null,"topics":["battlesnake","battlesnakeio","commanded","ecto","elixir","event-sourcing","phoenix-framework"],"latest_commit_sha":null,"homepage":"https://play.battlesnake.io/s/snk_3f7HScHvkh9F3Ckvg4jSSc7Q/","language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xtagon.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2019-02-20T06:24:29.000Z","updated_at":"2025-08-27T00:02:38.000Z","dependencies_parsed_at":null,"dependency_job_id":"481babd9-3f04-432d-a811-3024ea0400b1","html_url":"https://github.com/xtagon/nagini","commit_stats":null,"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"purl":"pkg:github/xtagon/nagini","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xtagon%2Fnagini","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xtagon%2Fnagini/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xtagon%2Fnagini/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xtagon%2Fnagini/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xtagon","download_url":"https://codeload.github.com/xtagon/nagini/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xtagon%2Fnagini/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28661882,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-22T01:17:37.254Z","status":"online","status_checked_at":"2026-01-22T02:00:07.137Z","response_time":144,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["battlesnake","battlesnakeio","commanded","ecto","elixir","event-sourcing","phoenix-framework"],"created_at":"2024-08-02T17:01:05.225Z","updated_at":"2026-01-22T11:11:25.296Z","avatar_url":"https://github.com/xtagon.png","language":"Elixir","funding_links":[],"categories":["Battlesnakes"],"sub_categories":[],"readme":"# Nagini\n\nNagini was a snake who used to compete at [Battlesnake](https://play.battlesnake.com/).\n\nThe name is not to be confused with all of the other battlesnakes named Nagini.\n\n## Status\n\nThis project is no longer in use, and **not currently supported or maintained**. There are known security advisories for outdated dependencies with no current plans to address or update them, and I don't recommend running this without due dilligence. It is left here for historical reasons.\n\n## Getting Started\n\nTo start your Phoenix server:\n\n  * Install dependencies with `mix deps.get`\n  * Set up the event store with `mix do event_store.create, event_store.init`\n  * Start Phoenix endpoint with `mix phx.server`\n\nNow you can use [`localhost:4000`](http://localhost:4000) as a Battlesnake\nendpoint.\n\nThe logger is configured to log at the debug level (very verbose) and logs are\nstored in `/tmp/nagini.log`. This is a workaround for Nanobox stdout log\nstreaming being broken.\n\nTo start your Ember admin frontend:\n\n  * Change to the frontend directory with `cd admin`\n  * Install dependencies with `npm install`\n  * Start Ember with `./node_modules/.bin/ember serve`\n\nNow you can view [`localhost:4200/admin/`](http://localhost:4200/admin/)\n\n## Configuration\n\nTo customize your snake, set these environment variables:\n\n  * `SNAKE_COLOR`\n  * `SNAKE_HEAD`\n  * `SNAKE_TAIL`\n\nTo tune the solver, set these environment variables:\n\n  * `SOLVER_TIMEOUT=infinity`\n  * `SOLVER_DEPTH=0`\n\n## Development with Nanobox\n\n  * Install Docker\n  * Install Nanobox CLI and log in\n  * `nanobox dns add local nagini.local`\n  * `nanobox run`\n  * Install dependencies and run start commands as normal\n\nNote that Nanobox's Elixir engine may run a different version of Elixir than\nthis project's .tool-versions lock file expects. This may not behave as\nintended.\n\n## Deployment with Nanobox\n\nTest with a dry-run first:\n\n  * `nanobox evar add dry-run PORT=8080 MIX_ENV=prod EMBER_ENV=production`\n  * `nanobox evar add dry-run ADMIN_USER=fixme ADMIN_PASS=fixme`\n  * `nanobox evar add dry-run APPSIGNAL_APP_NAME=\"Nagini\" APPSIGNAL_APP_ENV=\"dry-run\" APPSIGNAL_PUSH_API_KEY=\"FIXME\"`\n  * `nanobox deploy dry-run`\n  * Test the dry-run deployed endpoint\n\nUpdate the release version:\n\n  * Edit `mix.exs`\n\nDeploy:\n\n  * `nanobox remote add app-name`\n  * `nanobox evar add app-name PORT=8080 MIX_ENV=prod EMBER_ENV=production`\n  * `nanobox evar add app-name ADMIN_USER=fixme ADMIN_PASS=fixme`\n  * `nanobox evar add app-name APPSIGNAL_APP_NAME=\"Nagini\" APPSIGNAL_APP_ENV=\"prod\" APPSIGNAL_PUSH_API_KEY=\"FIXME\"`\n  * `nanobox deploy`\n\n## Monitoring\n\nMonitoring is set up to work with AppSignal if the environment is configured.\n\nTo read the Nanobox server logs:\n\n  * `nanobox console app-name web.main`\n  * `tail -f /tmp/nagini.log`\n\n## IEx Console for Nanobox Remote\n\n  * `nanobox console app-name web.main`\n  * `iex -S mix phx.server --no-start`\n\nThe `--no-start` option prevents the normal applications from being started\nbecause that would throw errors such as the port being in use.\n\n## PSQL Usage for Nanobox Local\n\n  * Find IP and password with `nanobox info local`\n  * `PGPASSWORD=\"\" psql -h IP -p 5432 -U nanobox gonano`\n\n## PSQL Usage for Nanobox Remote\n\n  * Start the tunnel with `nanobox tunnel data.event_store -p 5432`\n  * Find the password from Nanobox dashboard\n  * `psql -p 5432 -h 127.0.0.1 gonano nanobox`\n  * Enter the password`\n\n## License\n\nCopyright 2019 Justin Workman. All Rights Reserved.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxtagon%2Fnagini","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxtagon%2Fnagini","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxtagon%2Fnagini/lists"}