{"id":19083589,"url":"https://github.com/knowvus/duke","last_synced_at":"2026-06-22T13:31:13.946Z","repository":{"id":253608458,"uuid":"843981238","full_name":"Knowvus/Duke","owner":"Knowvus","description":"Server","archived":false,"fork":false,"pushed_at":"2025-04-08T02:09:45.000Z","size":6799,"stargazers_count":1,"open_issues_count":2,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-11-12T13:32:17.276Z","etag":null,"topics":["backend","duke"],"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-18T02:34:12.000Z","updated_at":"2024-09-30T21:38:06.000Z","dependencies_parsed_at":"2024-11-09T02:48:13.186Z","dependency_job_id":"86bc1a6e-d164-46a2-9e16-a3d9f080bb40","html_url":"https://github.com/Knowvus/Duke","commit_stats":null,"previous_names":["knowvus/duke_rs"],"tags_count":1,"template":true,"template_full_name":null,"purl":"pkg:github/Knowvus/Duke","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Knowvus%2FDuke","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Knowvus%2FDuke/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Knowvus%2FDuke/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Knowvus%2FDuke/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Knowvus","download_url":"https://codeload.github.com/Knowvus/Duke/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Knowvus%2FDuke/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34651747,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-22T02:00:06.391Z","response_time":106,"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":["backend","duke"],"created_at":"2024-11-09T02:48:04.708Z","updated_at":"2026-06-22T13:31:13.915Z","avatar_url":"https://github.com/Knowvus.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SUMMARY\n\nDuke is a middleware microservice Server that facilitates communication between:\n\n- Frontend: Raynor [Website]\n- Backend: Kerrigan [Postgres]\n\n# GOAL\n\n1) Refactor to Actions Github repo\n2) Kerrigan Deployment\n3) Duke Communicate with Kerrigan\n4) Raynor Deployment\n\n# Table of Contents\n\n- [LOCAL TESTING](#local-testing)\n- [NEXT STEP](#next-step)\n- [DIRECTORY STRUCTURE](#directory-structure)\n- [OPERATIONS](#operations)\n\n# 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# MILESTONES\n\n[] Create_User Integrate with Postgres\n   [] Error Message for Duplicate Email\n[] Create_Task Integrate with Postgres\n   [] Non Null String\n\nthese endpoints should be callable via CLI [this is how we can test since it's a microservice]\nCall the endpoint on the server - server servces the DB, DB responses, server serves DB response\n\n# LOCAL TESTING\n    ```\n    Build Time: ~4 Mins\n    ```\n\n1) **Run the Server Locally:**\n    ```\n    cargo clean\n    cargo build\n    cargo run\n    ```\n\n2) **Test the YAML Locally**\n    ```\n    act -j deploy --container-architecture linux/amd64\n    ```\n\n2) **Endpints:**\n    ```\n    - curl http://localhost:8080/create_user -d \"mkaminski1337@gmail.com\"\n    - curl http://localhost:8080/create_task -d \"Reverse this String!\"\n    - curl -f http://localhost:8080/health\n    ```\n4\n5) **CLI**\n\n    ### Docker\n     ```\n    docker ps -a\n    docker ps\n    docker inspect [service_name]\n    docker logs [service_name]\n    docker rm [container_id]\n    docker exec -it duke ping kerrigan\n    ```\n\n    ### Docker Swarm\n    ```\n    docker swarm join --token \u003cSWARM_TOKEN\u003e \u003cMANAGER_IP\u003e\u003e:\u003cPORT\u003e\n    docker swarm init --advertise-addr \u003cMANAGER_IP\u003e\n    ```\n\n    ### GENERAL\n    ```\n    ls\n    ls -a\n    sudo lsof -i :8080\n    ```\n\n    ### UPDATE PORT\n    ```\n    sudo nano /etc/ssh/sshd_config\n    uncommment #Port=22\n    sudo mkdir -p /run/sshd\n    sudo chmod 0755 /run/sshd\n    sudo systemctl restart ssh\n    sudo systemctl status ssh\n    ```\n\n    ### BASIC FIREWALL\n\n    INSTALL\n    ```\n    sudo apt update\n    sudo apt install fail2ban\n    sudo systemctl enable fail2ban\n    sudo systemctl start fail2ban\n    ```\n\n    UPDATE CONFIG: add to /etc/ssh/sshd_config\n    ```\n    Match Address 218.92.0.81\n        PermitRootLogin yes\n    ```\n    RUN CMD\n    ```\n    sudo systemctl restart ssh\n    ```\n\n    UPDATE CONFIG: add to /etc/fail2ban/jail.local on droplet:\n    ```\n    sudo ufw status\n    sudo ufw allow ssh\n    sudo ss -tuln | grep :22\n    [sshd]\n    enabled = true\n    ignoreip = 127.0.0.1/8 218.92.0.81\n    [sshd]\n    enabled = true\n    port = ssh\n    logpath = %(sshd_log)s\n    maxretry = 5\n    bantime = 10m\n    findtime = 10m\n    ```\n    RUN: CMD\n    ```\n    sudo systemctl restart fail2ban\n    sudo fail2ban-client status sshd\n    ```\n\n---\n\n# COMING SOON\n\n1) **API Documentation**\n    ```\n    OpenAPI JSON: http://\u003cyour-droplet-ip\u003e:8080/api-doc/openapi.json\n    Swagger UI: http://\u003cyour-droplet-ip\u003e:8080/docs\n    - curl -f http://localhost:8080/docs\n \n    ```\n   ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fknowvus%2Fduke","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fknowvus%2Fduke","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fknowvus%2Fduke/lists"}