{"id":17821931,"url":"https://github.com/arthurmelton/selfhut","last_synced_at":"2026-05-03T12:39:46.187Z","repository":{"id":118321774,"uuid":"570201060","full_name":"arthurmelton/selfhut","owner":"arthurmelton","description":"MIRROR : A fork/remake of sourcehut for my needs.","archived":false,"fork":false,"pushed_at":"2022-12-27T12:50:14.000Z","size":103,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-06-28T19:03:56.207Z","etag":null,"topics":["git","rust","selfhost","selfhut","sourcehut"],"latest_commit_sha":null,"homepage":"https://git.arthurmelton.com/selfhut","language":"CSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/arthurmelton.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}},"created_at":"2022-11-24T15:11:53.000Z","updated_at":"2022-12-20T14:31:32.000Z","dependencies_parsed_at":null,"dependency_job_id":"cb328d98-3755-4966-a81a-85f178018591","html_url":"https://github.com/arthurmelton/selfhut","commit_stats":null,"previous_names":["arthurmelton/selfhut","amtitan/selfhut"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/arthurmelton/selfhut","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arthurmelton%2Fselfhut","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arthurmelton%2Fselfhut/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arthurmelton%2Fselfhut/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arthurmelton%2Fselfhut/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/arthurmelton","download_url":"https://codeload.github.com/arthurmelton/selfhut/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arthurmelton%2Fselfhut/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263986222,"owners_count":23539808,"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":["git","rust","selfhost","selfhut","sourcehut"],"created_at":"2024-10-27T17:29:27.023Z","updated_at":"2026-05-03T12:39:41.140Z","avatar_url":"https://github.com/arthurmelton.png","language":"CSS","funding_links":["https://paypal.me/billy"],"categories":[],"sub_categories":[],"readme":"# [Selfhut](https://git.arthurmelton.com)\n\nThis is my git site, it took inspiration from [Sourcehut](https://sourcehut.org/).\nIts not a fork but its practically a remake, just for my use case. Please support\nDrew DeVault at [https://sourcehut.org/pricing/](https://sourcehut.org/pricing/).\nIf you are going to run this yourself. I really recommend supporting Drew DeVault\nbecause without him this would not exist!\n\n## Install\n\nTo install you will need:\n\n- git\n- rust\n- libgit2\n\nOnce you have these just run these steps.\n\n```sh\ngit clone https://git.arthurmelton.com/selfhut\ncd selfhut\ncargo build --release\n```\n\nThe binary executable will be at `./target/release/selfhut`, you can just run this\nand your server should start working!\n\n## Hosting\n\nSimply run the binary and a website is going to be hosted at port 8000. I would\nalso recommend using something like nginx to change the port and to do caching. If \nyou want to change the config (this would make sense because at default it only\nhas a example user), edit the file in `$(XDG_CONFIG_HOME)/selfhut/selfhut.toml`\nto your liking. To add a `favicon.ico` you need to add it to \n`$(XDG_CONFIG_HOME)/selfhut/favicon.ico`. \n\n## Config\n\nThis would be a server config that has every attribute set.\n```toml\nname = \"Billy Bob Jr\"\ndescription = \"I am supper cool and think that [This](https://exmaple.com) is really cool!\"\ngit_location = \"/var/git\"\ndomain = \"https://billyscoolwebsite.com\"\npayment_link = \"https://paypal.me/billy\" # this is optinal, if you dont want to take donations then just remove the line dont set it to \"\"\n\n[mailing_list] # This whole section is optinal, just remove it if you dont want email support\npassword = \"********\"\nimap_url = \"imap.billyscoolwebsite.com\"\nport = 993\n```\n\n## Repo Config\n\nA repo config is a file called `repo.toml` in the `HEAD` of your git repo. This\ncontrols some things like like the repo description and website. A example\nwould be this.\n```toml\ndescription=\"A really cool program I made\"\nwebsite=\"https://cool-program.com\"\n```\n\n## Setup git\n\nYou can do all the things in this to get fully setup. You will need to use ssh \ngit to make commits. You will need to run the `update-server-info` that is below\nafter you do the `git init`. [https://landchad.net/git](https://landchad.net/git)\n\n## Making a new git\n\nTo make a new git repo you need to run \n```sh\ngit init --bare my-repo.git\n```\nAfter you do this you will need to cd into the directory and make a file at the \npath `hooks/post-update` and set its contents to\n```sh\n#!/bin/sh\n\nexec git update-server-info\n```\nThis should create the git and make it so that people can actually clone it!\n\n## How to edit a repo\n\nThe way that you are going to edit a repo you own is through ssh.\n\n## Email\n\nThis can also run on any email server though a open imap connection. The actual\nmailing list and creation of accounts are handled through different programs.\nFor every repo you need to make a email for it (ex. if I have a repo called\n\"My-Cool-Program\" you need to make an email for it called \n\"My-Cool-Program@example.com\").\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farthurmelton%2Fselfhut","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farthurmelton%2Fselfhut","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farthurmelton%2Fselfhut/lists"}