{"id":22693778,"url":"https://github.com/deki/photoprism-aws","last_synced_at":"2025-04-13T00:21:18.237Z","repository":{"id":141314958,"uuid":"358200047","full_name":"deki/photoprism-aws","owner":"deki","description":"Templates to simplify and automate a PhotoPrism deployment for photo management on Amazon Web Services (AWS)","archived":false,"fork":false,"pushed_at":"2025-01-27T07:43:03.000Z","size":58,"stargazers_count":7,"open_issues_count":0,"forks_count":5,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-06T08:08:40.510Z","etag":null,"topics":["amazon-web-services","aws","cloud","cloudformation","cloudformation-template","cloudformation-templates","photography","photos"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/deki.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}},"created_at":"2021-04-15T09:22:09.000Z","updated_at":"2025-01-27T07:43:07.000Z","dependencies_parsed_at":null,"dependency_job_id":"1032bb79-f2a3-4867-8c61-2bdb6a7c1f29","html_url":"https://github.com/deki/photoprism-aws","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deki%2Fphotoprism-aws","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deki%2Fphotoprism-aws/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deki%2Fphotoprism-aws/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deki%2Fphotoprism-aws/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/deki","download_url":"https://codeload.github.com/deki/photoprism-aws/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248648232,"owners_count":21139252,"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":["amazon-web-services","aws","cloud","cloudformation","cloudformation-template","cloudformation-templates","photography","photos"],"created_at":"2024-12-10T02:14:35.386Z","updated_at":"2025-04-13T00:21:18.230Z","avatar_url":"https://github.com/deki.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# PhotoPrism on AWS\nThis repo contains a CloudFormation templates to simplify and automate a PhotoPrism deployment for photo management on Amazon Web Services (AWS).\n\nThe configuration and parameters are based on [the official docker-compose file](https://dl.photoprism.org/docker/docker-compose.yml). Please refer to the [PhotoPrism documentation](https://docs.photoprism.org) for more information.\n\n\n![Infrastructure diagram](diagram.png)\n\n## Prerequisites\nThe template requires an existing VPC with at least two subnets. \n\nEither reuse an existing VPC or follow the steps in the [ECS userguide](https://docs.aws.amazon.com/AmazonECS/latest/userguide/create-public-private-vpc.html) to create one. You can also use the [VPC Quick Start](https://aws.amazon.com/quickstart/architecture/vpc/).\n\n## Deployment\nThe deployment has been tested in the AWS regions `eu-central-1` and `us-east-1` but also works in other regions where all services from the diagram above are available. \n\nGo to the [AWS CloudFormation Console](https://console.aws.amazon.com/cloudformation/home?#/stacks/create/template) to start the deployment or use the AWS CLI with a command similar to this one: \n\n    aws cloudformation create-stack --stack-name PhotoPrism --template-body file://path/to/directory/photoprism.yaml --capabilities CAPABILITY_NAMED_IAM --parameters ParameterKey=VPC,ParameterValue=vpc-00id00 ParameterKey=Subnet1,ParameterValue=subnet-00id00 ParameterKey=Subnet2,ParameterValue=subnet-00id00 ParameterKey=DatabasePassword,ParameterValue=InsertSecureValueHere ParameterKey=PhotoPrismAdminPassword,ParameterValue=InsertAnotherSecureValueHere\n\nAfter stack creation is complete look for the output with the key `LoadBalancerUrl` and open the page in a browser. Login with user `admin` and the password that you provided as a parameter.\n\n## FAQ\n\n### Is it ready for production?\nThe template should be considered as a sample.\n\n### How to use HTTPS instead of HTTP?\nThis requires a certificate. Have a look at the areas that are commented out in the template to add your certificate and setup a Route53 recordset.\n\n### Why RDS for MariaDB and not Aurora Serverless or another serverless database like DynamoDB?\nPhotoPrism is compatible with MariaDB 10, MySQL 8, and SQLite 3.\n\nCiting from [the Advanced part of the PhotoPrism documentation](https://docs.photoprism.org/getting-started/advanced/scalability/):\n\u003e Traditional database servers like MariaDB might be slower and less powerful than specialized NoSQL or in-memory engines. They are often better documented and easier to maintain for the majority of users though.\n\nI don't fully agree with that statement, there are NoSQL databases that are well documented. However, it's not possible to simply plugin another database type without changes to the PhotoPrism codebase. Feel free to open a request in [the PhotoPrism issue tracker](https://github.com/photoprism/photoprism/issues).\n\nRegarding Aurora Serverless: As of now RDS for MariaDB is a cheaper way of running this, but it's possible to change it.\n\n### Why is everything put in just two subnets?\nIt's possible to add a third subnet for another Availability Zone. It's also common to setup separate subnets for e.g. the database. \nAs written above this template should be considered as a simplified sample.\n\n### Why EFS and not S3 for image storage?\nS3 is currently not supported by PhotoPrism although it seems to be an ideal use case for it, see photoprism/photoprism#93 for more details.\n\n### Can I SSH into the container although it's running serverless on Fargate?\nConfigure a policy with `ssmmessages` and follow the steps as described in the [Amazon ECS documentation](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-exec.html#ecs-exec-enabling-and-using).\n\nAfter you've finished the setup you can SSH into the container using:\n\n    aws ecs execute-command --cluster PhotoprismServiceCluster --task 1a2b3cyourtaskid --container PhotoprismService --interactive --command \"/bin/sh\"","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeki%2Fphotoprism-aws","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdeki%2Fphotoprism-aws","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeki%2Fphotoprism-aws/lists"}