{"id":15138217,"url":"https://github.com/bwc9876/wcpci","last_synced_at":"2025-09-25T20:16:33.849Z","repository":{"id":237335418,"uuid":"769776776","full_name":"Bwc9876/WCPCI","owner":"Bwc9876","description":"West Chester Programming Competition Improved","archived":false,"fork":false,"pushed_at":"2025-08-28T21:43:21.000Z","size":64092,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-08-29T02:52:50.059Z","etag":null,"topics":["astro","competitive-programming","nix","rocket","rust","tailwindcss","web"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/Bwc9876.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,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-03-10T02:53:56.000Z","updated_at":"2024-05-06T03:29:18.000Z","dependencies_parsed_at":"2024-05-09T21:46:03.770Z","dependency_job_id":"f5305d30-4917-4acb-a37c-8abc6817e758","html_url":"https://github.com/Bwc9876/WCPCI","commit_stats":null,"previous_names":["bwc9876/wcpci"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Bwc9876/WCPCI","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bwc9876%2FWCPCI","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bwc9876%2FWCPCI/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bwc9876%2FWCPCI/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bwc9876%2FWCPCI/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Bwc9876","download_url":"https://codeload.github.com/Bwc9876/WCPCI/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bwc9876%2FWCPCI/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276975655,"owners_count":25738512,"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","status":"online","status_checked_at":"2025-09-25T02:00:09.612Z","response_time":80,"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":["astro","competitive-programming","nix","rocket","rust","tailwindcss","web"],"created_at":"2024-09-26T07:21:12.668Z","updated_at":"2025-09-25T20:16:33.844Z","avatar_url":"https://github.com/Bwc9876.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# WCPC WIP Thing\n\nThis is a work in progress thing for the WCPC. It's a thing. It's a work in progress. It's a thing that's a work in progress\n\n## Dev Setup\n\n1. `nix develop`\n2. `just setup`\n3. Fill `.dev.env` file with the correct values for your setup\n\nNow run `just dev` to build the frontend and start the backend.\n\nIf you need to auto-rebuild the frontend on changes too, run `just dev-watch`.\n\nOnce either are run, connect to `http://localhost:8000` to see the frontend\n\n### OAuth No Workies\n\nMake sure you're doing `localhost:8000` and not `127.0.0.1:8000`.\nCallback URLs are pointing to `localhost` and not `127.0.0.1`\nso CORS will kick in and block state cookie access.\n\n## Production Setup\n\nWe recommend deploying with Nix. Docker makes it easy to build on a machine that has Nix, and deploy on a machine that doesn't.\n\n\n### Nix + Docker\n\nIn an empty directory, either locally or on the server you will deploy to:\n\n```sh\nnix flake init -t github:Bwc9876/WCPCI\n```\nThen follow the directions in the new `README.md`. (Also in this repo under `nix-template/`)\n\n### Nix without Docker\n\nYou can also use just Nix and deploy as a systemd service or something else.\n\nTo deploy as a systemd service with NixOS, make a `rocket_config.nix` (based on [`nix-template/rocket_config.nix`](/nix-template/rocket_config.nix)) and `.env` for sensitive options. The options are documented [in the deployment guide](/DEPLOYMENT.md#configuration). Add the following to your config:\n```nix\nsystemd.services.wcpc = let\n  rocket_config = pkgs.callPackage \u003cyour rocket_config.nix\u003e {};\n  wcpcDrv = \u003cwcpc flake\u003e.packages.${pkgs.system}.wrapper.override {inherit rocket_config;};\nin {\n  wants = [\"network.target\"];\n  wantedBy = [\"multi-user.target\"];\n  serviceConfig = {\n    ExecStart = \"${lib.getExe wcpcDrv}\";\n    EnvironmentFile = \"/path/to/.env\"; # This doesn't need to be named `.env`\n  };\n  env = {\n    # These are read-only\n    ROCKET_SAML='{certs=\"/path/to/saml_cert.pem\",key=\"/path/to/saml_key.pem\"}';\n    ROCKET_TLS='{certs=\"/path/to/tls_cert.pem\",key=\"/path/to/tls_key.pem\"}';\n\n    # This is read-write\n    ROCKET_DATABASES='{sqlite_db={url=\"/path/to/database.sqlite\"}}';\n  };\n};\n\n```\nThis has not been tested yet. Sorry.\n\u003c!-- TODO(Spoon): test this --\u003e\n\n### Without Nix\n\nSee [the deployment guide](/DEPLOYMENT.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbwc9876%2Fwcpci","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbwc9876%2Fwcpci","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbwc9876%2Fwcpci/lists"}