{"id":23159812,"url":"https://github.com/edent/location-activitypub-symfony","last_synced_at":"2025-08-18T02:31:28.942Z","repository":{"id":219490842,"uuid":"748567973","full_name":"edent/location-activitypub-symfony","owner":"edent","description":"A basic ActivityPub server for sharing your location. Written in PHP / Symfony","archived":false,"fork":false,"pushed_at":"2024-02-05T08:46:48.000Z","size":978,"stargazers_count":19,"open_issues_count":1,"forks_count":1,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-04-05T17:37:29.941Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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/edent.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,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2024-01-26T09:17:48.000Z","updated_at":"2024-07-12T09:24:34.000Z","dependencies_parsed_at":"2024-01-29T21:50:00.458Z","dependency_job_id":"d1cf2000-0abc-47cb-9076-b07122333481","html_url":"https://github.com/edent/location-activitypub-symfony","commit_stats":null,"previous_names":["edent/location-activitypub-symfony"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/edent/location-activitypub-symfony","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edent%2Flocation-activitypub-symfony","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edent%2Flocation-activitypub-symfony/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edent%2Flocation-activitypub-symfony/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edent%2Flocation-activitypub-symfony/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/edent","download_url":"https://codeload.github.com/edent/location-activitypub-symfony/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/edent%2Flocation-activitypub-symfony/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270933574,"owners_count":24670433,"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-08-18T02:00:08.743Z","response_time":89,"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":"2024-12-17T22:48:15.830Z","updated_at":"2025-08-18T02:31:28.524Z","avatar_url":"https://github.com/edent.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# WORK IN PROGRESS\n\nA basic ActivityPub server for sharing your location. Written in PHP / Symfony.\n\nRead all about it at https://shkspr.mobi/blog/2024/02/a-tiny-incomplete-single-user-write-only-activitypub-server-in-php/\n\nThis *only* allows you to post messages to your followers.  That's all it does.  It won't display favourites or reposts. There's no support for following other accounts or reading replies.  It cannot delete posts nor can it verify signatures. It doesn't have a database or any storage beyond flat files.\n\nBut it will happily send messages and allow itself to be followed.\n\nWith thanks to https://rknight.me/blog/building-an-activitypub-server/ and https://justingarrison.com/blog/2022-12-06-mastodon-files-instance/ and https://tinysubversions.com/notes/activitypub-tool/\n\n## Deployment\n\nYou probably shouldn't deploy this. But if you like to live dangerously...\n\n## Get a domain and set up https\n\nThis needs to be set up in a rool domain - `https://example.com` or `https://locate.example.com`. You cannot install it in `https://example.com/locate`\n\n## Create a Symfony 7 app on your host\n\nFollow https://symfony.com/doc/current/setup.html\n\n## Deploy\n\nCopy all the files in this repo to the appropriate folder on your server. You probably want to change the `/public/icon.jpg` and `/public/image.jpg` unless you want your account to look like mine!\n\n## Edit the `.env.local` file\n\nIt needs the following parameters:\n\n```\nUSERNAME=\"your_new_username\"\nAPI_PASSWORD=\"A_super_secure_password\"\nHTTP_BASIC_AUTH_USERNAME=\"USER\"\nHTTP_BASIC_AUTH_PASSWORD=\"PASS\"\nPUBLIC_KEY=\"-----BEGIN PUBLIC KEY-----\\n...\\n-----END PUBLIC KEY-----\"\nPRIVATE_KEY=\"-----BEGIN PRIVATE KEY-----\\n...\\n-----END PRIVATE KEY-----\"\n```\n\nSet your username. Don't include the `@`.\n\nGenerate a new password.  This protects the API.\n\nThe `HTTP_BASIC_AUTH_USERNAME` and `HTTP_BASIC_AUTH_PASSWORD` protect the `/new` page where you compose your check-ins.\n\nCreate a public/private keypair.  You can do this in PHP with:\n\n```php\n$config = [\n\t\"private_key_bits\" =\u003e 2048,\n\t\"private_key_type\" =\u003e OPENSSL_KEYTYPE_RSA,\n];\n\n$keypair = openssl_pkey_new($config);\nopenssl_pkey_export($keypair, $private_key);\n\n$public_key = openssl_pkey_get_details($keypair);\n$public_key = $public_key[\"key\"];\nprint_r($public_key);\nprint_r($private_key);\n```\n\n## Test\n\nVisit `https://YOURDOMAIN.tld/YOUR_USERNAME` - you should see a JSON file.  Also check `/follower`, `/following`, and `/outbox`\n\n## Follow\n\nGo to your Mastodon client - or Fediverse website - and search for `@YOUR_USERNAME@YOURDOMAIN.tld`. It should find your account. If not, try sending a message containing the username.\n\nFollow the account.\n\nCheck in `/public/logs/` to see if the follow request was made.\n\nCheck `/public/followers.json` to see if the follow request was successful.\n\n## Post\n\nGo to `/new` and enter your username and password. Update your location. Check in.\n\nA new JSON file should appear in `/public/posts/` and in your followers feeds.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedent%2Flocation-activitypub-symfony","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fedent%2Flocation-activitypub-symfony","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fedent%2Flocation-activitypub-symfony/lists"}