{"id":25650034,"url":"https://github.com/itsjunetime/junes-cafe","last_synced_at":"2026-06-18T19:31:48.350Z","repository":{"id":211823162,"uuid":"583498974","full_name":"itsjunetime/junes-cafe","owner":"itsjunetime","description":null,"archived":false,"fork":false,"pushed_at":"2026-03-06T17:04:11.000Z","size":1216,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-06T20:45:13.326Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/itsjunetime.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-12-30T00:44:18.000Z","updated_at":"2026-03-06T17:04:15.000Z","dependencies_parsed_at":"2024-02-03T20:32:11.878Z","dependency_job_id":"26c4696e-26f7-4969-a490-428077873734","html_url":"https://github.com/itsjunetime/junes-cafe","commit_stats":null,"previous_names":["itsjunetime/junes-cafe"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/itsjunetime/junes-cafe","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itsjunetime%2Fjunes-cafe","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itsjunetime%2Fjunes-cafe/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itsjunetime%2Fjunes-cafe/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itsjunetime%2Fjunes-cafe/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/itsjunetime","download_url":"https://codeload.github.com/itsjunetime/junes-cafe/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itsjunetime%2Fjunes-cafe/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34505419,"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-18T02:00:06.871Z","response_time":128,"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":[],"created_at":"2025-02-23T14:37:34.641Z","updated_at":"2026-06-18T19:31:48.344Z","avatar_url":"https://github.com/itsjunetime.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"the code for my blog, [itsjuneti.me](https://itsjuneti.me) (and its new address, [june.cat](https://june.cat). hope y'all enjoy it, and please tell me if you find any vulnerabilities instead of exploiting them :)\n\n## setup\n\nhere's how I set it up! for my reference and for yours, i guess\n\n1. install postgres and nginx\n2. enable their services\n3. create admin user:\n\n```bash\nuseradd server_admin;\nmkdir -p /home/server_admin/server_files/assets\nchown -R server_admin:server_admin /home/server_admin\n```\n\n4. Connect to postgresql with `sudo -u postgres psql` and execute something like:\n\n```sql\nCREATE DATABASE server_database;\nCREATE USER server_admin WITH ENCRYPTED PASSWORD 'password';\nGRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO server_admin;\nALTER DATABASE server_database OWNER TO server_admin;\n```\n\nyou may need to also change the auth method for 127.0.0.1/32 in pg_hba.conf (exec `SHOW hba_file` in sql) to `password` instead of `ident` to get it to work\n\n5. Append the following to /etc/sudoers:\n\n```\n# Allow server_admin to restart the server\nserver_admin ALL=NOPASSWD: /usr/bin/systemctl stop itsjunetime.service\nserver_admin ALL=NOPASSWD: /usr/bin/systemctl start itsjunetime.service\nserver_admin ALL=NOPASSWD: /usr/bin/systemctl daemon-reload\nserver_admin ALL=NOPASSWD: /usr/sbin/nginx -s reload\n```\n\n6. Copy your tls crt and keys to wherever you want on the system\n\n8. Write the following to `/etc/systemd/system/itsjunetime.service`:\n\n```systemd\n[Unit]\nDescription=itsjuneti.me blog\nAfter=network.target\nStartLimitIntervalSec=0\n\n[Service]\nType=simple\nRestart=always\nUser=server_admin\nExecStart=/home/server_admin/server_files/backend\nWorkingDirectory=/home/server_admin/server_files/\nEnvironment=LEPTOS_SITE_ROOT=/home/server_admin/server_files LEPTOS_SITE_PKG_DIR=pkg LEPTOS_SITE_ADDR=0.0.0.0:443\nAmbientCapabilities=CAP_NET_BIND_SERVICE\nCapabilityBoundingSet=CAP_NET_BIND_SERVICE\n\n[Install]\nWantedBy=multi-user.target\n```\n\n9. Write something like the following to `/home/server_admin/server_files/.env`:\n\n```env\nDATABASE_URL=\"postgres://server_admin:password@127.0.0.1/server_database\"\nBASE_PASSWORD=\"password\"\nBASE_USERNAME=\"june\"\nASSET_DIR=\"/home/server_admin/server_files/assets\"\nCERT_FILE=\"/path/to/tls/cert/chain.crt\"\nKEY_FILE=\"/path/to/tls/private/key.key\"\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fitsjunetime%2Fjunes-cafe","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fitsjunetime%2Fjunes-cafe","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fitsjunetime%2Fjunes-cafe/lists"}