{"id":36454223,"url":"https://github.com/kunalsin9h/tiddi","last_synced_at":"2026-01-11T23:01:12.824Z","repository":{"id":122919107,"uuid":"588224087","full_name":"KunalSin9h/tiddi","owner":"KunalSin9h","description":"⌘Tiddi⌘  is self hosted object store server written in go ","archived":false,"fork":false,"pushed_at":"2025-10-08T13:27:24.000Z","size":147,"stargazers_count":17,"open_issues_count":1,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-13T13:20:45.539Z","etag":null,"topics":["golang","images","imageserver","sqlite"],"latest_commit_sha":null,"homepage":"","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/KunalSin9h.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":"KunalSin9h"}},"created_at":"2023-01-12T16:10:30.000Z","updated_at":"2025-10-06T09:17:24.000Z","dependencies_parsed_at":"2023-11-29T15:29:02.163Z","dependency_job_id":"c47b6d7f-52d5-4e75-9f4b-190f1cf1de37","html_url":"https://github.com/KunalSin9h/tiddi","commit_stats":{"total_commits":89,"total_committers":3,"mean_commits":"29.666666666666668","dds":0.0449438202247191,"last_synced_commit":"48cd4560b59923a85afaf4c7ae820c5219d636e2"},"previous_names":["znip-in/tiddi"],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/KunalSin9h/tiddi","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KunalSin9h%2Ftiddi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KunalSin9h%2Ftiddi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KunalSin9h%2Ftiddi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KunalSin9h%2Ftiddi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/KunalSin9h","download_url":"https://codeload.github.com/KunalSin9h/tiddi/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KunalSin9h%2Ftiddi/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28326166,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-11T22:11:01.104Z","status":"ssl_error","status_checked_at":"2026-01-11T22:10:58.990Z","response_time":60,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["golang","images","imageserver","sqlite"],"created_at":"2026-01-11T23:01:12.667Z","updated_at":"2026-01-11T23:01:12.817Z","avatar_url":"https://github.com/KunalSin9h.png","language":"Go","funding_links":["https://github.com/sponsors/KunalSin9h"],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003ch3\u003ePowered by\u003c/h3\u003e\n  \u003cdiv style=\"display: flex; justify-content: center;\"\u003e\n  \u003ca href=\"https://turso.tech/\"\u003e\n  \u003cimg width=\"230px\" src=\"https://i.imgur.com/jg5epki.png\" alt=\"TursoDB Logo\"\u003e\n  \u003c/a\u003e\n  \u0026nbsp;\n  \u0026nbsp;\n  \u003ca href=\"https://github.com/meltred/meltcd\"\u003e\n  \u003cimg width=\"220px\" src=\"https://i.imgur.com/S3kHtNI.png\" alt=\"MeltCD Logo\"\u003e \n  \u003c/a\u003e\n  \u003c/div\u003e\n\u003c/div\u003e \n\nSupports: all type of files\n\n## Demo\n\nGo to https://tiddi.kunalsin9h.com to see a demo of the project.\n\n\n## Features (API)\n\n- [x] Upload files\n- [x] View files\n- [x] Delete files\n- [x] Update files\n- [x] Get image details\n\n## Setup Locally\n\n\u003e [!IMPORTANT]\n\u003e If you want to run the server inside a docker container, you can follow these [Docker Instructions](https://github.com/kunalsin9h/tiddi/blob/main/Docker.md)\n\n\u003e [!IMPORTANT]\n\u003e If you want to run the server using [Meltcd](https://github.com/meltred/meltcd) then you can follow these [Meltcd Instructions](https://github.com/kunalsin9h/tiddi/blob/main/Meltcd.md)\n\n### Prerequisites\n\n- [Go](https://golang.org/dl/) (latest version recommended)\n- [SQLite](https://www.sqlite.org/download.html) (latest version recommended)\n- [LibSQL](https://github.com/tursodatabase/libsql) An SQLite3 Fork \n\n### Steps\n\n1. Clone the repo\n\n```bash\ngit clone https://github.com/kunalsin9h/tiddi.git\n```\n\n2. Change the working directory\n\n```bash\ncd tiddi\n```\n\n4. Run the server\n\n```bash\ngo run cmd/main.go\n```\n\n7. Open http://localhost:5656 in your browser\n\n## Environment Variables\n\nYou can set the following environment variables to change the default settings of the server.\n\n| Environment Variable | Default Value            | Description                       |\n| :------------------- | :----------------------- | :-------------------------------- |\n| `PORT`               | `5656`                   | Port on which the server will run |\n| `DB`                 | `file:./database/dev.db` | URL to the database file          |\n| `HOST`               | `localhost`              | Host on which the server will run |\n\n#### Example\n\n```bash\nexport PORT=8080\n\n# DB can be sqlite file or libsql url\nexport DB=file:./database/prod.db\n# alternatively for libsql\nexport DB=libsql://my-db.tarso.io?authToken=autotoken\n\nexport HOST=https://tiddi.kunalsin9h.com\n\ngo run cmd/main.go\n```\n\n\u003e The `HOST` environment variable is used to generate the `unique image id` of the image, it is recommended to set it to the domain name of the server. `HOST` is also used in the sample frontend to fetch the image from the server.\n\n## API Docs\n\n### Sample Client\n\n#### The Sample Frontend is available at `./cmd/frontend` directory, it is served by the server at `/` route.\n\n```http\nGET /\n```\n\n### Upload Image\n\n```http\nPOST /image/\n```\n\nRequest:\n\n```json\n{\n  \"image\": [23, 112, 2,...34],\n  \"title\": \"Image Title\"\n}\n```\n\n| Parameter | Type     | Description                         |\n| :-------- | :------- | :---------------------------------- |\n| `image`   | `[]byte` | **Required**. Image bytes to upload |\n| `title`   | `string` | **Optional**. Title of the image    |\n\nResponse:\n\n```json\n{\n  \"url\": \"Unique URL of the image\"\n}\n```\n\n### View Image\n\n```http\nGET /{uiid}\n```\n\n\u003e Image with `uiid` is served at this route\n\n### Get Image Details\n\n```http\nGET /get-image/{uuid}\n```\n\n| Parameter | Type     | Description                     |\n| :-------- | :------- | :------------------------------ |\n| `uiid`    | `string` | **Required**. UIID of the image |\n\nResponse:\n\n```json\n{\n  \"title\": \"Image Title\",\n  \"image\": \"Base64 Encoded Image\"\n}\n```\n\n\u003e UIID is the `unique image id` of the image, it is generated by the server and is returned when the image is uploaded.\n\n### Delete Image\n\n```http\nDELETE /delete-image/\n```\n\n| Parameter | Type     | Description                     |\n| :-------- | :------- | :------------------------------ |\n| `uiid`    | `string` | **Required**. UIID of the image |\n\n### Update Image\n\n```http\nPUT /update-image/\n```\n\n| Parameter | Type     | Description                         |\n| :-------- | :------- | :---------------------------------- |\n| `uiid`    | `string` | **Required**. UIID of the image     |\n| `image`   | `[]byte` | **Optional**. Image bytes to upload |\n| `title`   | `string` | **Optional**. Title of the image    |\n\n## Tech Stack\n\n**Client:** HTML, CSS, JavaScript\n\n**Server:** Go, SQLite\n\n## Authors\n\n- [@KunalSin9h](https://github.com/KunalSin9h)\n\n## License\n\n[MIT](https://choosealicense.com/licenses/mit/)\n\n## Acknowledgements\n\n- [Mattn's SQLite3 driver for Go](https://github.com/mattn/go-sqlite3)\n- [matoous's go-nanoid](https://github.com/matoous/go-nanoid)\n\n## Support\n\nFor support, email `kunal@kunalsin9h.com`\n\n## Feedback\n\nIf you have any feedback, please reach out to us at `kunal@kunalsin9h.com`\n\n## Contributing\n\nContributions are always welcome!\n\nEnjoy! 🚀\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkunalsin9h%2Ftiddi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkunalsin9h%2Ftiddi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkunalsin9h%2Ftiddi/lists"}