{"id":17223169,"url":"https://github.com/daboross/dabo.guru","last_synced_at":"2025-03-25T16:23:07.305Z","repository":{"id":16504243,"uuid":"19257151","full_name":"daboross/dabo.guru","owner":"daboross","description":"Dynamic content on dabo.guru","archived":false,"fork":false,"pushed_at":"2022-06-10T02:04:50.000Z","size":4814,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-30T14:27:09.734Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"dabo.guru","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/daboross.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":"2014-04-28T23:14:54.000Z","updated_at":"2022-02-10T06:42:16.000Z","dependencies_parsed_at":"2022-07-26T13:48:09.223Z","dependency_job_id":null,"html_url":"https://github.com/daboross/dabo.guru","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daboross%2Fdabo.guru","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daboross%2Fdabo.guru/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daboross%2Fdabo.guru/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daboross%2Fdabo.guru/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/daboross","download_url":"https://codeload.github.com/daboross/dabo.guru/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245496979,"owners_count":20624933,"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":[],"created_at":"2024-10-15T04:07:32.738Z","updated_at":"2025-03-25T16:23:07.276Z","avatar_url":"https://github.com/daboross.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"dabo.guru\n=========\n\nThis is my personal website, https://dabo.guru.\n\nStatic content is generated via a Python flask application, frozen using Frozen-Flask.\n\nDynamic content is currently being migrated from the flask app to a Rust [actix-web]\napplication, located in ./v2/.\n\n### Info for v1:\n\nOn https://dabo.guru, the frozen content generated by `build.py` is hosted by nginx. The dynamic content, this app, is\nrun on uwsgi, and is proxied through by nginx whenever a file isn't found in the static folder.\n\nThe static content found in the `static/` folder after running `build.py` is also copied over and run at\nhttp://daboross.net, which is a copy of https://dabo.guru hosted by github pages.\n\n### Example Configurations\n\nThese are the configurations used in the actual website, dabo.guru, and can also serve as example configurations if you would want to run this repository yourself.\n\nThese assume this repository is cloned into `/var/www/dabo.guru`, and a virtualenv environment with the required dependencies has been installed to `/var/www/envs/dabo.guru`.\n\nThese configurations also assume that you've run `build.py` to manually build all static content, and you will re-run it after updating the repository.\n\nIn debian, configuration for uwsgi is stored in `/etc/uwsgi/apps-available` with symlinks to `/etc/uwsgi/apps-enabled`.\n\nHere's the example uwsgi configuration (`/etc/uwsgi/apps-available/01-dabo.guru.ini`):\n\n```ini\n[uwsgi]\nsocket = 127.0.0.1:3031\nwsgi-file = /var/www/dabo.guru/dynamic.wsgi\nvirtualenv = /var/www/envs/dabo.guru/\nmule = /var/www/dabo.guru/uwsgi_mules/documentation_update.py\nmule = /var/www/dabo.guru/uwsgi_mules/record_statistics.py\ncallable = application\nuid = azd\ngid = azd\n# Don't give write permission to group or other\numask = 022\n# Start initially with no workers, then start a maximum of 2\nworkers = 2\ncheap = true\ncheaper = 1\ncheaper-initial = 1\ncheaper-step = 1\n```\n\nTo go along with this, you might want a nginx configuration akin to the following (`/etc/nginx/sites-available/01-dabo.guru`):\n\n```nginx\n# Redirect all https requests for www.dabo.guru to dabo.guru\nserver {\n    listen ...:443 ssl;\n    listen [...]:443 ssl;\n\n    ssl_certificate ...;\n    ssl_certificate_key ...;\n\n    server_name www.dabo.guru;\n\n    return 301 $scheme://dabo.guru$request_uri;\n}\n\n# Redirect all http requests for dabo.guru to https\nserver {\n    listen ...:80;\n    listen [...]:80;\n\n    server_name dabo.guru;\n\n    return 301 https://dabo.guru$request_uri;\n}\n\n# Handle https requests for dabo.guru\nserver {\n    listen ...:443 ssl;\n    listen [...]:443 ssl;\n\n    ssl_certificate ...;\n    ssl_certificate_key ...;\n\n    server_name dabo.guru;\n\n    root /var/www/dabo.guru/static/;\n\n    # Serve assets only from generated files, and include max expire time.\n    location /assets/ {\n        expires max;\n        try_files $uri $uri/index.html =404;\n    }\n\n    # Redirect all other not-found content to the uwsgi app.\n    location / {\n        try_files $uri $uri/index.html @dynamic_content;\n    }\n\n    location @dynamic_content {\n        include uwsgi_params;\n        uwsgi_pass 127.0.0.1:3031;\n    }\n}\n```\n\nThe above is close to, but not exactly the actual used nginx configuration. The actual configuration has the personal information not-elided, and includes url-redirects for some other services also hosted on https://dabo.guru.\n\n[actix-web]: https://github.com/actix/actix-web\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaboross%2Fdabo.guru","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdaboross%2Fdabo.guru","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaboross%2Fdabo.guru/lists"}