{"id":24969283,"url":"https://github.com/maxvalue/logos-server","last_synced_at":"2025-06-17T23:38:43.543Z","repository":{"id":272068375,"uuid":"915417862","full_name":"MaxValue/logos-server","owner":"MaxValue","description":"A simple web service to offer permalinks to your logos","archived":false,"fork":false,"pushed_at":"2025-01-11T21:45:15.000Z","size":4,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-09T12:13:22.069Z","etag":null,"topics":["corporate-design","corporate-identity","logo","logos","permalink","permalinks"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":false,"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/MaxValue.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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":"2025-01-11T19:46:29.000Z","updated_at":"2025-01-11T20:49:22.000Z","dependencies_parsed_at":"2025-01-11T21:41:16.592Z","dependency_job_id":null,"html_url":"https://github.com/MaxValue/logos-server","commit_stats":null,"previous_names":["maxvalue/logos-server"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/MaxValue/logos-server","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaxValue%2Flogos-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaxValue%2Flogos-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaxValue%2Flogos-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaxValue%2Flogos-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MaxValue","download_url":"https://codeload.github.com/MaxValue/logos-server/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaxValue%2Flogos-server/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260458881,"owners_count":23012505,"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":["corporate-design","corporate-identity","logo","logos","permalink","permalinks"],"created_at":"2025-02-03T14:36:59.123Z","updated_at":"2025-06-17T23:38:38.530Z","avatar_url":"https://github.com/MaxValue.png","language":"Shell","readme":"\n# Logos Server\n\n_A simple web service to offer permalinks to your logos_\n\n* Do you want to have permanent links to the logo of your group/verein?\n* Does your logo come in different variants?\n* Do you want to swap your logos style at specific times during the year?\n* Does your group/verein have subgroups with a different logo?\n\nThis script tries to satisfy these requirements.\n\n[TOC]\n\n## Script Usage\n\n`./logos.sh /path/to/logos/dir defaultGroupName currentStyleName`\n\n* `logos.sh` is the script name, as seen in this repository\n* `/path/to/logos/dir` should be replaced with the path where your logos are stored (more about the directory structure needed later)\n* `defaultGroupName` should be replaced with the name of the subgroup which should be assumed as default (more on that later)\n* `currentStyleName` should be replaced with the name of style which should be assumed as default (more on that later)\n* there is an optional fourth argument: `svg/webp/png/jpg/ico` This specifies the preference of file extensions for the symlink without a file extension. If the first format is not found, the next one is tried. With this argument you can change the order in which these extensions are tried.\n\n### The required directory structure\n\n* logosRootDir/\n    * groupName/\n        * default_full.ico\n        * default_full.png\n        * default_full.svg\n        * default_name.ico\n        * default_name.png\n        * default_name.svg\n        * default_square.ico\n        * default_square.png\n        * default_square.svg\n        * pride_full.ico\n        * pride_full.png\n        * pride_full.svg\n        * pride_name.ico\n        * pride_name.png\n        * pride_name.svg\n        * pride_square.ico\n        * pride_square.png\n        * pride_square.svg\n\nYou do not need to provide all these variants. This is just an example. The important part is, that your canonical logo (the default design) is named beginning with `default_` and other style variants have their specific prefix. Everything after the first `_` is not important, here it is used for differentiating between the form factors of the logo.\n\n### What the script does in detail\n\n* for each group it creates symlinks to the current style variant. These symlinks start with `logo_`\n* it also creates a file-extension-less symlink of each format variant for each style, as convenience\n* in the root directory of the logos it creates symlinks for all the files of the default group\n\nThis behavior results in links like these:\n\n* https://public.example.com/logos/logo_full.svg\n* https://public.example.com/logos/logo_name.png\n* https://public.example.com/logos/logo_square.ico\n* https://public.example.com/logos/pride_full.png\n* https://public.example.com/logos/pride_name.ico\n* https://public.example.com/logos/pride_square.svg\n* https://public.example.com/logos/AT/logo_full.png\n* https://public.example.com/logos/AT/logo_name.svg\n* https://public.example.com/logos/AT/logo_square.ico\n* https://public.example.com/logos/AT/default_full\n* https://public.example.com/logos/AT/default_full.svg\n* https://public.example.com/logos/AT/default_name.ico\n* https://public.example.com/logos/AT/default_square.png\n* https://public.example.com/logos/AT/pride_full.ico\n* https://public.example.com/logos/AT/pride_name.svg\n* https://public.example.com/logos/AT/pride_square.png\n\n## Script Setup\n\n### Prerequisites\n\n* `bash` shell\n* `find` command\n\n### Step by Step\n\n1. Download the script\n2. Create your directory structure\n3. Run the script, e.g.:\n    `./logos.sh /path/to/logos/dir AT default`\n4. Setup your web server to point to that directory structure\n5. Optionally setup a cronjob to change the default group at specific times of the year, e.g.:\n    * at pride month:\n        `*/3 * 1 6 * logosuser ./logos.sh /path/to/logos/dir AT pride`\n    * after pride month:\n        `*/3 * 1 7 * logosuser ./logos.sh /path/to/logos/dir AT default`\n\n## Roadmap\n* Support .htaccess files and nginx rules as alternative to cronjobs\n\n## Versioning\n\nWe use [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](https://gitlab.com/MaxValue/logos-server/-/tags).\n\n## Authors\n* **Max Fuxjäger** - *Initial work* - [MaxValue](https://gitlab.com/MaxValue)\n\nSee also the list of [contributors](https://gitlab.com/MaxValue/logos-server/-/graphs/main?ref_type=heads) who participated in this project.\n\n## Project History\nThis project was created because I (Max) needed a low maintenance solution for swapping logos on a Verein-Website without changing each link and, if possible, have the logos updated if those were hotlinked to from other sites. I did not find anything similar, at least not as simple as this, so in a procrastination streak I wrote this script.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaxvalue%2Flogos-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaxvalue%2Flogos-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaxvalue%2Flogos-server/lists"}