{"id":15024854,"url":"https://github.com/knowvus/kerrigan","last_synced_at":"2026-01-04T20:40:15.444Z","repository":{"id":254042469,"uuid":"845308995","full_name":"Knowvus/Kerrigan","owner":"Knowvus","description":"Postgres DB","archived":false,"fork":false,"pushed_at":"2024-08-28T00:52:55.000Z","size":6729,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-03-22T21:43:00.627Z","etag":null,"topics":["diesel","kerrigan","postgres"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Knowvus.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":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-21T02:08:02.000Z","updated_at":"2024-08-28T00:52:59.000Z","dependencies_parsed_at":"2024-11-29T13:10:51.943Z","dependency_job_id":"d6712d80-c682-4395-bb16-ea3d8b83a410","html_url":"https://github.com/Knowvus/Kerrigan","commit_stats":null,"previous_names":["knowvus/kerrigan_rs","knowvus/kerrigan"],"tags_count":2,"template":false,"template_full_name":"Knowvus/Duke","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Knowvus%2FKerrigan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Knowvus%2FKerrigan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Knowvus%2FKerrigan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Knowvus%2FKerrigan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Knowvus","download_url":"https://codeload.github.com/Knowvus/Kerrigan/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245026005,"owners_count":20549067,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["diesel","kerrigan","postgres"],"created_at":"2024-09-24T20:01:04.344Z","updated_at":"2026-01-04T20:40:15.350Z","avatar_url":"https://github.com/Knowvus.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# Kerrigan - PostgreSQL Integration\n\n## Table of Contents\n\n- [Overview](#overview)\n- [Deployment Status](#deployment-status)\n- [Storage](#storage)\n- [Credentials](#credentials)\n- [Migrations](#migrations)\n- [Containerization](#containerization)\n- [Deployment](#deployment)\n- [Project Setup](#project-setup)\n- [CI/CD](#ci-cd)\n- [Roadmap](#roadmap)\n\n## Overview\n\nThis project integrates the Kerrigan PostgreSQL database with the Duke_rs server, now re-implemented in Rust. The project aims to set up user and task management with a Postgres database, managing migrations, and deploying to a DigitalOcean droplet.\n\n## Deployment Status\n\n[![Build and Deploy Docker Image](https://github.com/Knowvus/Duke_rs/actions/workflows/deploy.yml/badge.svg)](https://github.com/Knowvus/Duke_rs/actions/workflows/deploy.yml)\n\n## Roadmap\n\n### Registration Process\n\n- **Step 1:** User enters email address and clicks \"Register\"\n- **Step 2:** Check for duplicate email\n- **Step 3:** If email is not duplicate, create a new user\n- **Step 4:** Send confirmation email with a link\n- **Step 5:** User clicks the confirmation link and is registered\n\n### Milestones\n\n- [x] Create User Table in Postgres\n- [x] Create Task Table in Postgres\n- [ ] Implement User Registration Endpoint\n- [ ] Implement Task Creation Endpoint\n- [ ] Add Unit, Integration, and E2E testing\n\n## Migrations\n\n- **Migration Tool:** `diesel` with Rust\n```\nSamples\n@ = %40\nname@gmail.com = name%40gmail.com\n\nexport PG_USER=email@domain.com\nexport PG_PASSWORD=password\nexport PG_HOST=ip_address\nexport PG_PORT=port\nexport PG_DATABASE=db_name\n\nexport DATABASE_URL=postgres://$PG_USER:$PG_PASSWORD@$PG_HOST:$PG_PORT/$PG_DATABASE\ndiesel migration run\n```\n\n## Containerization \u0026 Deployment\n\n- **Docker Container Name:** `kerrigan`\n- **Container Name:** `kerrigan`\n- **Hosting:** DigitalOcean Droplet\n\n## Project Setup\n\n### 1) Create GitHub Repository\n   - Initialize a new repository on GitHub for the project.\n\n### 2) Create DigitalOcean Droplet\n   - Set up a new droplet on DigitalOcean and configure it to run the Rust application and Postgres database.\n\n### 3) Store SSH Keys\n   - Store SSH keys on both the DigitalOcean Droplet and GitHub repository secrets for secure communication.\n\n### 4) Initialize Rust Project\n   - Install Rust and Cargo on your development machine:\n     ```bash\n     curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n     ```\n   - Create a new Rust project:\n     ```bash\n     cargo new kerrigan_rs\n     cd kerrigan_rs\n     ```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fknowvus%2Fkerrigan","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fknowvus%2Fkerrigan","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fknowvus%2Fkerrigan/lists"}