{"id":16890402,"url":"https://github.com/jedevc/apparea","last_synced_at":"2026-04-01T20:57:17.251Z","repository":{"id":57535287,"uuid":"225603718","full_name":"jedevc/apparea","owner":"jedevc","description":"Lightweight reverse proxying to localhost :tada:","archived":false,"fork":false,"pushed_at":"2020-09-10T22:18:40.000Z","size":1286,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-09T11:09:16.871Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://apparea.dev","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jedevc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-12-03T11:29:38.000Z","updated_at":"2021-11-09T08:38:51.000Z","dependencies_parsed_at":"2022-09-26T18:21:47.374Z","dependency_job_id":null,"html_url":"https://github.com/jedevc/apparea","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jedevc/apparea","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jedevc%2Fapparea","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jedevc%2Fapparea/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jedevc%2Fapparea/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jedevc%2Fapparea/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jedevc","download_url":"https://codeload.github.com/jedevc/apparea/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jedevc%2Fapparea/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31013964,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-27T02:58:54.984Z","status":"ssl_error","status_checked_at":"2026-03-27T02:58:46.993Z","response_time":164,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":"2024-10-13T17:02:55.707Z","updated_at":"2026-03-27T03:15:25.560Z","avatar_url":"https://github.com/jedevc.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AppArea\n\nAppArea is an open-source reverse proxying tool powered by SSH.\n\nUnlike other tools out there, AppArea uses a lightweight abstraction layer\nover SSH, moving as much logic as possible to the server, while keeping the\nclient as minimal as possible; in fact it's completely possible to just use\nthe default SSH command built in to most linux distributions!\n\n## Installation\n\nClone the repository:\n\n    $ git clone --recursive https://github.com/jedevc/apparea.git\n    $ cd apparea\n\nThen you need to configure everything:\n\n1. Create `.env` using `.example.env` as a template.\n2. Create `docker-compose.override.yml` to configure ACME DNS challenge\n   environment variables for the traefik service.\n3. Then, create the required server config files:\n\n    ```\n    $ mkdir -p config\n    $ ssh-keygen -N \"\" -f ./config/id_rsa -t rsa -b 4096\n    $ touch config/authorized_keys\n    ```\n\n    You should have the following files:\n\n    ```\n    $ tree config\n    config\n    ├── authorized_keys\n    ├── id_rsa\n    └── id_rsa.pub\n\n    0 directories, 3 files\n    ```\n\n4. Then you can bring the containers up:\n\n    ```\n    $ docker-compose up\n    ```\n\n## Configuration format\n\nThe format is identical to the authorized keys format followed by normal SSH\nservers, however, the comment field is used to contain the username.\n\n```\nssh-\u003calgorithm\u003e \u003ckey\u003e \u003cusername\u003e\n```\n\n## Usage\n\nTo get started, install and run the client helper script:\n\n    $ wget https://raw.githubusercontent.com/jedevc/apparea/master/scripts/apparea.py\n    $ chmod +x apparea.py\n    $ ./apparea.py\n    ...\n\nMake sure that you copy your key and username over to config/authorized_keys\nand restart the server.\n\nNow you can expose ports on your local machine to the server!\n\n    $ apparea http 8080\n    \u003e\u003e\u003e Listening on http://jedevc.apparea.dev\n    \n### Manual\n\nSince all of the logic is handled by the server, you don't need to use the\nhelper script!\n\nOnce you've got your key and username in the server's config file, you can\njust execute the following to expose local port 8080:\n\n    $ ssh -R 0.0.0.0:80:localhost:8080 -p 21 jedevc@apparea.dev\n    \u003e\u003e\u003e Listening on http://jedevc.apparea.dev\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjedevc%2Fapparea","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjedevc%2Fapparea","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjedevc%2Fapparea/lists"}