{"id":27733392,"url":"https://github.com/fedify-dev/microblog","last_synced_at":"2025-04-28T12:39:02.369Z","repository":{"id":264993809,"uuid":"846193469","full_name":"fedify-dev/microblog","owner":"fedify-dev","description":"A simple federated microblog example using Fedify for educational purpose","archived":false,"fork":false,"pushed_at":"2024-09-29T15:56:17.000Z","size":51,"stargazers_count":20,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-26T08:17:38.283Z","etag":null,"topics":["activitypub","fedify","fediverse"],"latest_commit_sha":null,"homepage":"https://fedify.dev/tutorial/microblog","language":"TypeScript","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/fedify-dev.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,"publiccode":null,"codemeta":null}},"created_at":"2024-08-22T17:55:53.000Z","updated_at":"2025-04-25T13:36:23.000Z","dependencies_parsed_at":"2024-11-28T13:30:29.214Z","dependency_job_id":null,"html_url":"https://github.com/fedify-dev/microblog","commit_stats":null,"previous_names":["dahlia/microblog","fedify-dev/microblog"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedify-dev%2Fmicroblog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedify-dev%2Fmicroblog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedify-dev%2Fmicroblog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fedify-dev%2Fmicroblog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fedify-dev","download_url":"https://codeload.github.com/fedify-dev/microblog/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251122397,"owners_count":21539680,"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":["activitypub","fedify","fediverse"],"created_at":"2025-04-28T12:39:01.859Z","updated_at":"2025-04-28T12:39:02.364Z","avatar_url":"https://github.com/fedify-dev.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"Federated microblog example using Fedify\n========================================\n\n\u003e [!WARNING]\n\u003e This program is for educational purposes only. Do not use it for any other\n\u003e purpose, since it has not been tested for security.\n\nThis is a simple federated microblog example using [Fedify].  The features of\nthis program are:\n\n -  A user can create an account (up to one account)\n -  A user can be followed by other actors in the fediverse\n -  A follower can unfollow a user\n -  A user can see the list of their followers\n -  A user can post a message\n -  Posts made by a user are visible to their followers in the fediverse\n -  A user can follow other actors in the fediverse\n -  A user can see the list of actors they are following\n -  A user can see the list of posts made by actors they are following\n\nSince it is a simple example for educational purposes, it has a lot of\nlimitations:\n\n -  A user cannot configure their profile (bio, picture, etc.)\n -  A user cannot delete their account\n -  A user cannot edit/delete their posts\n -  A user cannot unfollow an actor they once followed\n -  No likes, shares (reposts), or replies\n -  No search feature\n -  No security features (authentication, authorization, etc.)\n\n[Fedify]: https://fedify.dev/\n\n\nDependencies\n------------\n\nThis program is written in TypeScript and uses [Node.js].  You need to have\nNode.js 20.0.0 or later installed on your system to run this program.\n\nIt also depends on few external libraries besides [Fedify]:\n\n -  [Hono] for web framework\n -  [SQLite] for database\n -  A few other libraries; see *package.json* for details\n\n[Node.js]: https://nodejs.org/\n[Hono]: https://hono.dev/\n[SQLite]: https://www.sqlite.org/\n\n\nHow to run\n----------\n\nTo run this program, you need to install the dependencies first.  You can do\nthat by running the following command:\n\n~~~~ sh\nnpm install --include=dev\n~~~~\n\nAfter installing the dependencies, you need to create the database schema.\nYou can do that by running the following command:\n\n~~~~ sh\nnpm run createdb\n~~~~\n\n\u003e [!NOTE]\n\u003e The above command requires the `sqlite3` program to be installed on your\n\u003e system.  If it is not installed, you can install it using your package\n\u003e manager.  For example, on Debian-based systems, you can install it using the\n\u003e following command:\n\u003e\n\u003e ~~~~ sh\n\u003e sudo apt install sqlite3\n\u003e ~~~~\n\u003e\n\u003e On macOS, you probably already have it installed.\n\u003e\n\u003e On Windows, you can download *sqlite-tools-win-x64-\\*.zip* from the SQLite\n\u003e website's [download page][1] and extract it to a directory in your `PATH`.\n\nAfter creating the database schema, you can run the program using the following\ncommand:\n\n~~~~ sh\nnpm run prod\n~~~~\n\nThis will start the program on port 8000.  You can access the program by\nvisiting \u003chttp://localhost:8000/\u003e in your web browser.  However, since this\nprogram is an ActivityPub server, you probably need to expose it to the public\ninternet to communicate with other servers in the fediverse.  In that case, you\ncan use [tunneling services][2].\n\n[1]: https://www.sqlite.org/download.html\n[2]: https://fedify.dev/manual/test#exposing-a-local-server-to-the-public\n\n\nLicense\n-------\n\nThis program is licensed under the [MIT License].  See the *LICENSE* file for\ndetails.\n\n[MIT License]: https://minhee.mit-license.org/2024/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffedify-dev%2Fmicroblog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffedify-dev%2Fmicroblog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffedify-dev%2Fmicroblog/lists"}