{"id":14063299,"url":"https://github.com/daminikhq/daminik","last_synced_at":"2025-07-29T15:32:22.186Z","repository":{"id":247905791,"uuid":"826867872","full_name":"daminikhq/daminik","owner":"daminikhq","description":"Daminik is a simple \u0026 scalable Digital Asset Manager with a built-in Content Delivery Network. The single source of truth for all your assets. ","archived":false,"fork":false,"pushed_at":"2024-08-19T17:01:01.000Z","size":1504,"stargazers_count":245,"open_issues_count":6,"forks_count":7,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-08-20T15:16:14.299Z","etag":null,"topics":["cdn","dam","digital-asset-management","image-editor","php","wordpress"],"latest_commit_sha":null,"homepage":"https://daminik.com","language":"PHP","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/daminikhq.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":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-10T14:36:49.000Z","updated_at":"2024-08-20T15:16:14.300Z","dependencies_parsed_at":null,"dependency_job_id":"254bb2c0-c302-4d16-a8ff-e941ec05072e","html_url":"https://github.com/daminikhq/daminik","commit_stats":null,"previous_names":["daminikhq/daminik"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daminikhq%2Fdaminik","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daminikhq%2Fdaminik/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daminikhq%2Fdaminik/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daminikhq%2Fdaminik/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/daminikhq","download_url":"https://codeload.github.com/daminikhq/daminik/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228028276,"owners_count":17858306,"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":["cdn","dam","digital-asset-management","image-editor","php","wordpress"],"created_at":"2024-08-13T07:03:15.309Z","updated_at":"2024-12-04T01:30:31.846Z","avatar_url":"https://github.com/daminikhq.png","language":"PHP","funding_links":[],"categories":["PHP"],"sub_categories":[],"readme":"![](https://cdn.daminik.com/dam-2024-91b1f1b/daminik/og-i/og-image.png)\n\n# Daminik\n\nDaminik is a simple \u0026 scalable Digital Asset Manager with a built-in Content Delivery Network. The single source of truth for all your assets.\n\n## Requirements\n\n* PHP 8.2 or higher with ctype, exif, gd and iconv\n* Node 18 or higher to build the frontend assets\n* [ImageMagick](https://imagemagick.org/) with PNG, JPG, WebP and GIF\n* MySQL 8\n* [Composer](https://getcomposer.org/)\n* A server with full CLI access and cronjobs\n* A mail account for service mails\n* A way to run background workers\n* A domain with wildcard subdomains\n* S3-compatible storage\n\n## Installation\n\nThis is just a basic way of installing and deploying Daminik. If you have experience\ndeploying Symfony projects you'll be able to adapt these to your needs.\n\n```shell\ngit clone https://github.com/daminikhq/daminik.git\ncd daminik\ncomposer install\n```\n\nNow create a `.env.local` in the `app` directory and add the configuration for\nyour installation, overwriting the values in `.env` - the most common ones will be:\n\n`DATABASE_URL` - follow the format of the setting in the `.env` file. For more details,\nhave a look [at the Symfony docs](https://symfony.com/doc/current/doctrine.html#configuring-the-database).\n(Note: only MySQL is supported and tested, MariaDB might work.)\n\n`MAILER_DSN` - follow the format of the setting in the `.env` file. For more details,\nhave a look [at the Symfony docs](https://symfony.com/doc/current/mailer.html#transport-setup).\n(Note: only SMTP and Mailjet have been tested.)\n\n`EMAIL_SENDER` - this is the sender address for all transactional email. This address\nwill also be mentioned as support address on error pages and at some UI elements. Make\nsure that the transport you use in `MAILER_DSN` is allowed to send mails from this address.\n\n`DEFAULT_FILESYSTEM` - set this to `s3` - the alternative would be `local` in which case\nall assets will just be put on the same server as the code. This is strictly meant for\nlocal development environments. (Hence the name.)\n\n`DEFAULT_S3_KEY`, `DEFAULT_S3_SECRET`, `DEFAULT_S3_ENDPOINT` and `DEFAULT_S3_REGION` are\nthe config settings for your S3-compatible storage.\n\n`DEFAULT_S3_TYPE` - this has two settings for now: `single` and `year`\nIf you pick `single` it will put all assets into one bucket, which you have to set\nwith `DEFAULT_S3_BUCKET`\nIf you pick `year` your S3 account must have the capability of programmatically create\nnew buckets. It will create a new bucket for each year. You need to\nset `DEFAULT_S3_BUCKET_PREFIX`\n\n`REGISTRATION_SECRET` - a code someone has to enter to register on your installation\n\n`DEFAULT_URI`, `DOMAIN` and `TLD` of your domain. Yes, all three and the `DEFAULT_URI`\nhas to have the full protocol and no trailing slash.\n\nOnce everything is set, you can finish the installation with these commands:\n\nDatabase migration\n\n```shell\nbin/console doctrine:migrations:migrate --no-interaction\n```\n\nFrontend build\n\n```shell\nyarn install\nyarn encore production\n```\n\nNow point your domain and the wildcard subdomains to the `app/public` directory and\nyou should be all set. Well, almost - you need to make sure the worker for the background\nprocesses is running. [Have a look at the Symfony docs](https://symfony.com/doc/current/messenger.html#consuming-messages-running-the-worker)\nto find more details and a sample configuration for Supervisor.\n\nIt's a good idea to run `bin/console app:clean-deleted-assets` once per day - it will clean\nout soft-deleted assets after 30 days.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaminikhq%2Fdaminik","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdaminikhq%2Fdaminik","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaminikhq%2Fdaminik/lists"}