{"id":23217481,"url":"https://github.com/summertriangle-dev/arposandra","last_synced_at":"2025-09-16T12:10:35.023Z","repository":{"id":41724814,"uuid":"213795406","full_name":"summertriangle-dev/arposandra","owner":"summertriangle-dev","description":"Source code for allstars.kirara.ca. Tornado app; React interactive components.","archived":false,"fork":false,"pushed_at":"2023-07-07T01:28:23.000Z","size":2930,"stargazers_count":15,"open_issues_count":9,"forks_count":5,"subscribers_count":2,"default_branch":"master","last_synced_at":"2023-07-07T02:39:15.664Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://allstars.kirara.ca","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/summertriangle-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-10-09T01:48:47.000Z","updated_at":"2023-07-04T23:01:11.000Z","dependencies_parsed_at":"2023-02-06T11:46:50.443Z","dependency_job_id":null,"html_url":"https://github.com/summertriangle-dev/arposandra","commit_stats":null,"previous_names":[],"tags_count":1,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/summertriangle-dev%2Farposandra","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/summertriangle-dev%2Farposandra/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/summertriangle-dev%2Farposandra/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/summertriangle-dev%2Farposandra/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/summertriangle-dev","download_url":"https://codeload.github.com/summertriangle-dev/arposandra/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230340041,"owners_count":18211156,"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-12-18T20:48:30.329Z","updated_at":"2025-09-16T12:10:29.914Z","avatar_url":"https://github.com/summertriangle-dev.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Arposandra\n\nYou need Python 3.9 to run this thing.\nIt's split into two apps, the asset server that produces images on demand\nfrom the astool package cache, and the web server that produces the pages.\n\n## Setting Up\n\nI recommend using docker - (almost) ready-made configs are available in\nthe `variants` folder. Your docker-compose command will probably look like:\n\n```\ndocker-compose -f docker-compose.yml \\\n    -f variants/config.dev.yml \\\n    -f variants/config.postgres.yml [build/up etc...]\n```\n\nYou will need to make the following edits to the configs:\n\n- postgres: update both instances of `AS_POSTGRES_DSN` to point at the right \n  hostname. It's usually `xxxxx_db_1`, where xxxxx is the name of the folder you\n  cloned this repo into (such as `arposandra`).\n- dev: Change `AS_IMAGE_SERVER` to point at the right hostname.\n  Do not use a docker-internal host because your browser will request images\n  from it.\n- General: You should also change the mounts to point at the right directories\n  on your computer. \"./arena/astool_server_specific_fixme\" should point\n  to a folder containing the \"masters\" folder.\n- Alternatively, just create the symlink \"./arena/astool_server_specific_fixme\"\n  that points to the right place.\n\nIf you want to run the tools in the utils image, you need to follow the instructions\nto clone astool in the maintenance directory.\n\n## Application Configuration\n\nSee `doc/config.md`.\n\n## Adding New Pages\n\nThe web app code lives in the captain directory. The basic flow to add a new page\nis like this:\n\n1. Decide whether the page should go in a new py file. Pages that are similar\n   in function should share a file.\n   - If you make a new file, you need to import it in `captain/__init__.py`.\n2. Create the RequestHandler subclass. Please look at the Tornado docs to\n   see what you can do here.\n3. Use the `dispatch.route` decorator to add URLs to your page. Example:\n   ```python\n   from tornado.web import RequestHandler\n   from .dispatch import route\n   @route(r\"/mypage/([0-9]+)\")\n   class SomePage(RequestHandler):\n       def get(self, param):\n           self.write(f\"Hello world! Your number was {param}.\")\n   ```\n\n## Frontend code (Sass and JS)\n\nThe CSS and Javascript code is in frontend/. Starting the js-dev docker container\n(defined in variants/config.dev.yml) will set up webpack-dev-server for you.\nNo need to do anything on the host side anymore.\n\nRemember to change the AS_WDS_HOST environment variable in config.dev.yml to\neither localhost, or an accessible host if testing on other devices.\n\n## Localization\n\nSee `doc/localization.md`.\n\n## Asset Server\n\nThis section has been moved to skyfarer/README.md.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsummertriangle-dev%2Farposandra","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsummertriangle-dev%2Farposandra","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsummertriangle-dev%2Farposandra/lists"}