{"id":20187993,"url":"https://github.com/arran4/goa4web-bookmarks","last_synced_at":"2026-03-16T05:34:53.311Z","repository":{"id":193982009,"uuid":"689556072","full_name":"arran4/goa4web-bookmarks","owner":"arran4","description":"Landing page for when you open browers / live bookmarks in go. -- AI based C -\u003e Go port","archived":false,"fork":false,"pushed_at":"2025-06-21T23:32:14.000Z","size":1184,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-22T00:25:44.483Z","etag":null,"topics":["bookmarks","go","golang","home-page","homepage","live-bookmarks","start-page","web"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/arran4.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,"zenodo":null}},"created_at":"2023-09-10T07:23:20.000Z","updated_at":"2025-06-21T23:32:15.000Z","dependencies_parsed_at":"2023-11-22T02:28:54.282Z","dependency_job_id":"ad81724c-5487-40d0-89d3-a6b72022ac70","html_url":"https://github.com/arran4/goa4web-bookmarks","commit_stats":null,"previous_names":["arran4/goa4web-bookmarks"],"tags_count":22,"template":false,"template_full_name":null,"purl":"pkg:github/arran4/goa4web-bookmarks","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arran4%2Fgoa4web-bookmarks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arran4%2Fgoa4web-bookmarks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arran4%2Fgoa4web-bookmarks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arran4%2Fgoa4web-bookmarks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/arran4","download_url":"https://codeload.github.com/arran4/goa4web-bookmarks/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arran4%2Fgoa4web-bookmarks/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261509348,"owners_count":23169668,"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":["bookmarks","go","golang","home-page","homepage","live-bookmarks","start-page","web"],"created_at":"2024-11-14T03:26:55.422Z","updated_at":"2026-03-16T05:34:53.305Z","avatar_url":"https://github.com/arran4.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# goa4web-bookmarks\n\n\u003e **Deprecated**: This project is no longer maintained. It has been superseded by [gobookmarks](https://github.com/arran4/gobookmarks) which provides the same functionality with additional features. Please migrate to that project.\n\nGoa4webb-ookmarks is a Spin out from [goa4web](https://github.com/arran4/goa4web/), which is a chatGPT aided\n(with slight enhancement) conversion of [a4web](https://github.com/arran4/a4web/) (a c++ website I made while in\nuniversity in 2005-6) into go.\n\nThis project isn't designed to be used directly. Feel free to fork, copy, or submit PRs if you wish to use it for \nyourself.\n\nThere will be a blog post on this and the related tech, log an issue if I fail to update this with it.\n\n# What it does\n\nThe purpose of this component of the website was to allow users to create a list of links they would be able to use\nas soon as they opened their browser. The idea was that users would set it as their \"Home Page\". This was of course\nwritten instead of using [iGoogle](https://en.wikipedia.org/wiki/IGoogle), or before Google Chrome started pushing \n\"search as the home page.\"\n\nIt allowed you to provide a list of categorized links as such:\n\n![img.png](media/img_0.png)\n\nIt supported columns and categories in a simplistic way:\n\n![img_3.png](media/img_3.png)\n\nYou require a category for any links. So in the language (new errors could exist b/c chatgpt did the conversion:) \n```\nCategory: \u003cCategory Name\u003e\n```\n\nThen each link provided in:\n```\n\u003clink\u003e \u003cText\u003e\n```\nFormat. Where the dividor is the first ` ` (space) character.\n\nTo create a new column use:\n```\nColumn\n```\n\nSuch as a complete config could look like:\n```\nCategory: Example 1\nhttp://www.google.com.au Google\nColumn\nCategory: Example 2\nhttp://www.google.com.au Google\nhttp://www.google.com.au Google\n```\n\nA video of use:\n\n![Video](media/video1.mp4)\n\n# Tech\n\nIt uses Google Oauth2 for authentication, and either SQLite or Mysql for the backend.\n\nIt has its own configuration file format in it, which isn't being used. Future expansion could be to use that so \nthe properties don't have to be passed around using environment variables.\n\nAs it uses CGo because of sqlite there is a bit of effort required for new compile targets, they can be provided\nupon request.\n\n# Installation\n\nCurrently, it's built and packaged using goreleaser, and a docker container. The docker container version is the only\nversion which is configured to start, if you install it using the .deb, or .rpm you will have to provide the environment\nvariables yourself.\n\nThe docker container is available in ghcr.io:\n* https://github.com/arran4/goa4web-bookmarks/pkgs/container/goa4web-bookmarks\n\nYou can get the binaries directly from the release tag:\n* https://github.com/arran4/goa4web-bookmarks/releases/tag/v1.0.0\n\n## Configuration\n\nRuntime settings are loaded from an environment file and an optional JSON configuration file.\nBy default the server reads `/etc/goa4web-bookmarks/goa4web-bookmarks.env` and\n`/etc/goa4web-bookmarks/config.json`. The paths can be overridden with the\n`GOBM_ENV_FILE` and `GOBM_CONFIG_FILE` environment variables or the `-config` command line flag.\n\n`example-config.json` and `example.env` in the repository show the expected format.\n\nDatabase settings are controlled by `DB_CONNECTION_PROVIDER` and `DB_CONNECTION_STRING`.\nOther options include OAuth2 endpoints and credentials, site title, namespace, whether CSS\ncolumns are enabled, favicon cache directory and size, and a flag to hide the footer.\n\nIf OAuth2 URLs are not provided the Google endpoints are used by default.\n\n## Running with Docker\n\nThe Docker image now uses an Alpine base image. Run it with the required\ndatabase environment variables:\n\n```\ndocker build -t goa4web-bookmarks .\ndocker run -p 8080:8080 -p 8443:8443 \\ \n  -v $(pwd)/data:/data \\\n  -e DB_CONNECTION_PROVIDER=sqlite3 \\\n  -e DB_CONNECTION_STRING='file:/data/a4webbookmarks.db?_loc=auto' \\\n  goa4web-bookmarks\n```\n\n# Motivation:\n\nSee: https://open.substack.com/pub/arranubels/p/quicklinks?r=1ner06\u0026utm_campaign=post\u0026utm_medium=web\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farran4%2Fgoa4web-bookmarks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farran4%2Fgoa4web-bookmarks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farran4%2Fgoa4web-bookmarks/lists"}