{"id":16055515,"url":"https://github.com/uglow/thumbsup-fav-server","last_synced_at":"2026-07-06T21:30:59.554Z","repository":{"id":57233568,"uuid":"448714871","full_name":"uglow/thumbsup-fav-server","owner":"uglow","description":"Allow you to use Thumbsup website to toggle favourite-status of media","archived":false,"fork":false,"pushed_at":"2022-11-07T00:31:36.000Z","size":19899,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-20T09:41:05.199Z","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/uglow.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-01-17T01:09:02.000Z","updated_at":"2022-01-17T01:33:19.000Z","dependencies_parsed_at":"2023-01-22T09:46:09.076Z","dependency_job_id":null,"html_url":"https://github.com/uglow/thumbsup-fav-server","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/uglow/thumbsup-fav-server","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uglow%2Fthumbsup-fav-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uglow%2Fthumbsup-fav-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uglow%2Fthumbsup-fav-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uglow%2Fthumbsup-fav-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/uglow","download_url":"https://codeload.github.com/uglow/thumbsup-fav-server/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/uglow%2Fthumbsup-fav-server/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35206987,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-06T02:00:07.184Z","response_time":106,"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-10-09T02:09:15.100Z","updated_at":"2026-07-06T21:30:59.518Z","avatar_url":"https://github.com/uglow.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Fav-server\n\nA docker container containing [thumbsup](https://thumbsup.github.io/), but with an Express API \nto allow you to record (and change) your favourite images through the ThumbsUp website that is generated.\n\n## Requirements\n\n- A machine capable of running Docker (e.g. your computer, a Synology NAS, etc)\n- This docker image: `ghcr.io/uglow/thumbsup-fav-server:latest` (which is build using this repo).\n\n## How it works\n\nFav-server is a simple NodeJS Express application that does one-thing: it creates/updates `picasa.ini` files\nwith the favourite-state of images that you toggle the favourite-state for (via `theme-cards-fav`).\n\nWhen the `picasa.ini` files change, the server initiates a rebuild of your site to persist the favourite-state, after a short delay.\n\n[PM2](https://pm2.keymetrics.io/docs/usage/quick-start/) is used to keep the server alive forever, even when there are crashes (which shouldn't happen). \nNote that \"alive forever\" means \"as long as the Docker container is running\" when run inside of a Docker container.\n\n\n## Docker Command Line Parameters\n\nThe following additional arguments can be passed on the command line:\n\n- `rebuildDelay` (optional, default = 3sec): Number of seconds to wait before rebuilding the site. Balance between usability (seeing the site update) and performance.\n\nThese parameters are passed to the NodeJS server for processing.\n\n## Installation - Local Machine\n\n1. Edit `./run-remote.sh` and change the `input` and `output` volumes. By default, these volumes point to `\u003crepo\u003e/example/...`.\n2. Run `./run-remote.sh` to start the server in Docker.\n3. Create a web-server to serve the `output` directory. E.g. `cd \u003coutputDir\u003e \u0026\u0026 python -m SimpleHTTPServer 8000`\n4. Open a browser to `http://localhost:8000/` (or whatever port you have setup in the above step).\n\n## Installation - Synology\n\nThe main steps are:\n1. Install image onto Synology.\n2. Setup config\n3. Setup Synology Web Station\n4. Configure \u0026 Run\n\n### 1. Install image onto Synology\n\nSynology's Docker support for non-DockerHub registries and images is not great. Normally you would\nuse the Synology \u003e Docker app to add a new Docker image. However, at the time of writing, Synology\ncannot read this image: `ghcr.io/uglow/thumbsup-fav-server:latest`.\n\nSo here's how to get `ghcr.io/uglow/thumbsup-fav-server:latest` onto the Synology box.\n\n1. Synology: Control Panel -\u003e Terminal \u0026 SNMP -\u003e Enable SSH\n2. From your computer, in a new terminal window: `ssh \u003cuser\u003e@\u003cip.address.for.synology-device\u003e`\n3. Once logged in, `sudo -i` (To be able to use docker on cli. Note: use the same password as your user.)\n4. `docker pull ghcr.io/uglow/thumbsup-fav-server:latest`\n5. Synology: Control Panel -\u003e Terminal \u0026 SNMP -\u003e Disable SSH\n\nAfter download completes, the image appears in the Synology Docker.\n\n### 2. Setup config\n\nIn this step we will provide the Thumbsup theme and config required by the Docker image.\n\nWhen Docker is installed on Synology, a `/docker` share folder is created. We need to create a sub-folder for the\nthumbsup-fav-server config, and copy the `theme-cards-fav` files here.\n\n1. Open a new terminal window.\n2. `git clone https://github.com/uglow/thumbsup-fav-server.git` to copy the source code, **which includes example config**.\n3. Copy the files from `\u003cgitRepo\u003e/example/config` to Synology `/docker/fav-server/config`.\n4. Copy the files from `\u003cgitRepo\u003e/theme-cards-fav` to Synology `/docker/fav-server/config/theme-cards-fav`.\n   **This updates the templates used to generate the web pages.**\n5. Edit `config.json` to supply the [Thumbsup config](https://thumbsup.github.io/docs/3-configuration/misc-settings/).\n   1. **Do not change the following properties**: `theme-path`, `theme-style`, `albums-from`\n\n\n### 3. Setup Synology Web Station\n\nThere are lots of ways to run a website (including using a Docker image).\nBut on a Synology NAS, the easiest way is to use Synology Web Station.\n\n1. Synology \u003e Package Center \u003e Search \"Web Station\"\n2. Install the \"Web Station\" package. Once this is installed you will see a new share-folder\n   called `/web`. This will be where the Thumbsup-generated website will be published to.\n\n### 3b. Stop any previous container\n\n1. Synology: Docker \u003e Container \u003e Select `uglow/thumbsup-fav-server_x_y_z` \u003e Stop Running\n\n### 4. Configure \u0026 Run\n\n1. Synology: Docker \u003e Image \u003e Select `uglow/thumbsup-fav-server` \u003e Launch:\n   ![](docs/run.1.png)\n\n2. Enter the container name as `thumbsup-fav-server_x_y_z`, then press \"Advanced Settings\"\n   ![](docs/run.2.png)\n\n3. Advanced Settings \u003e Enable auto-restart. Optionally create a shortcut on the desktop.\n   ![](docs/run.3.png)\n\n4. Volume Tab, press Add Folder for each folder below:\n   1. Folder: `/photo` (in this example), Mount: `/input`\n   2. Folder: `/web` (defined in step 3), Mount: `/output`\n   3. Folder: `/docker/fav-server/config` (defined in step 2), Mount: `/config`\n   ![](docs/run.4.png)\n\n5. (optional) Environment Tab, set the Command to `rebuild\\=5` to rebuild the website after waiting for 5 seconds.\n   **Note**: As per [this article](https://stackoverflow.com/questions/56833111/how-to-pass-command-parameters-with-arguments-for-e-g-param1-arg1-to-docker), the `=` characters have to be escaped with `\\`. E.g. `inputDir\\=...`\n   ![](docs/run.5.png)\n\n6. On the Network tab, set the host port and container port to 8080. If you get a warning\n   about the port being used, edit the configuration of the container that is using the port\n   and assign it a different local port \n\n7. Press Apply.\n8. Review the changes, then press Done.\n\n## Running\n\nOpen the website. Click the ⭐️ icon for images/photos that you like these selections will\nbe persisted once the site rebuilds.\n\n## Development\n\nSee [DEVELOPERS.md](DEVELOPERS.md).\n\n## Upgrading\n\nWhen installing a new Docker image, repeat steps 1,2 and 4 in \"Installation - Synology\".\n\n## Troubleshooting\n\n### Website not building\n\nThe first time you run this container, **it will take a long time before the website is generated**.\nYou may even find that the container hangs. **Don't worry!** Just restart the Docker container, and Thumbsup\nwill resume where it left off.\n\nIn terms of time, it took over 8 hours to finish building the website for 182 GB of images and videos, including hang-time.\nThe build is finished once the `/web` folder on Synology contains a bunch of `*.html` files, representing\nthe different albums. Increasing available RAM improves performance.\n\n### Device is slow while building\n\nThumbsup has a `--concurrency` option. In order to keep your device responsive, it is best\nnot to use all the CPU cores on your device for rebuilding the site.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuglow%2Fthumbsup-fav-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fuglow%2Fthumbsup-fav-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fuglow%2Fthumbsup-fav-server/lists"}