{"id":15462832,"url":"https://github.com/aitumik/snippetbox","last_synced_at":"2026-04-13T20:03:38.904Z","repository":{"id":40560140,"uuid":"431528067","full_name":"aitumik/snippetbox","owner":"aitumik","description":"Snippetbox web app","archived":false,"fork":false,"pushed_at":"2022-12-19T07:52:23.000Z","size":520,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-29T18:34:28.346Z","etag":null,"topics":["auth","auth0","docker","elasticsearch","go","golang","http","kibana","mux-router"],"latest_commit_sha":null,"homepage":"https://aitumik-snippetbox.fly.dev/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aitumik.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-11-24T15:05:51.000Z","updated_at":"2022-10-24T18:10:23.000Z","dependencies_parsed_at":"2023-01-29T21:00:46.033Z","dependency_job_id":null,"html_url":"https://github.com/aitumik/snippetbox","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/aitumik/snippetbox","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aitumik%2Fsnippetbox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aitumik%2Fsnippetbox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aitumik%2Fsnippetbox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aitumik%2Fsnippetbox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aitumik","download_url":"https://codeload.github.com/aitumik/snippetbox/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aitumik%2Fsnippetbox/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31768680,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-13T15:25:13.801Z","status":"ssl_error","status_checked_at":"2026-04-13T15:25:09.162Z","response_time":93,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["auth","auth0","docker","elasticsearch","go","golang","http","kibana","mux-router"],"created_at":"2024-10-02T00:05:13.411Z","updated_at":"2026-04-13T20:03:38.870Z","avatar_url":"https://github.com/aitumik.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Snippetbox\nSnippetbox is a golang application for curating snippets\n\n## Docker Setup\n\n\u003e Note that to clone the repository you need to have git installed\n```\ngit clone https://github.com/aitumik/snippetbox\n```\n\nMake sure you have installed docker\n```\ncd snippetbox\n```\n\nHere is the `docker-compose.yaml`\n```yaml\n# Application\n  snippetbox:\n    container_name: snippetbox\n    build:\n      context: .\n      dockerfile: Dockerfile\n    ports:\n      - \"5000:5000\"\n    depends_on:\n      - postgres\n    env_file: .env\n    volumes:\n      - ./:/snippetbox\n# Database\n  postgres:\n    env_file: .env\n    image: \"postgres\"\n    hostname: \"postgres\"\n    ports:\n        - \"5432:5432\"\n    volumes:\n        - pgdata:/var/lib/postgresql/data\n# Adminer\n  admner:\n    container_name: admner\n    image: dockette/adminer\n    restart: always\n    ports:\n      - \"8085:80\"\n    depends_on:\n      - postgres\n# Volumes\nvolumes:\n  pgdata:\n    driver: local\n```\n\nBuild and Run\n```\ndocker-compose up -d\n```\n\n[Snippetbox](http://localhost:5000)\n![Snippetbox Screenshot](/screenshots/image.png \"screenshot of the homepage\").\n[Adminer](http://localhost:8080)\n![Adminer Screenshot](/screenshots/adminer.png \"screenshot of adminer\").\n\n\n### Todo\n- [ ] Oauth2 for authentication\n- [ ] Redis for caching (we mostly do reads,writes are minimum)\n- [ ] Kibana for analytics and visualization of data\n- [ ] Setup CI/CD\n- [ ] Add coverage tests\n\n### In Progress\n- [ ] Add search capabilities by integrating with elasticsearch\n\n### Done ✓\n- [x] Cache templates for faster rendering\n- [x] Request logging middleware implemented\n- [x] Panic recovery middleware\n- [x] Add middlewares\n- [x] Dockerize the application\n\n# Tools\n* Postgres\n* Elasticsearch\n\n# Coverage\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faitumik%2Fsnippetbox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faitumik%2Fsnippetbox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faitumik%2Fsnippetbox/lists"}