diff --git a/docs/docs/.vitepress/sidebar.ts b/docs/docs/.vitepress/sidebar.ts index fe95c35d53..567a62d960 100644 --- a/docs/docs/.vitepress/sidebar.ts +++ b/docs/docs/.vitepress/sidebar.ts @@ -258,7 +258,7 @@ export const sidebar = [ link: "/self-hosting/guides/configuring-s3", }, { - text: "Using external S3", + text: "Hosting Ente with external S3 (Community)", link: "/self-hosting/guides/external-s3", }, { diff --git a/docs/docs/self-hosting/guides/external-s3.md b/docs/docs/self-hosting/guides/external-s3.md index 604cb321e4..a32cbeb85b 100644 --- a/docs/docs/self-hosting/guides/external-s3.md +++ b/docs/docs/self-hosting/guides/external-s3.md @@ -7,6 +7,14 @@ description: # Hosting server and web app using external S3 +> [!NOTE] +> +> This is a community contributed guide, and some of these steps might be out of +> sync with the upstream documentation. If something is not working correctly, +> please also see the latest +> [READMEs](https://github.com/ente-io/ente/blob/main/server/README.md) in the +> repository and/or other guides in [self-hosting](/self-hosting/). + This guide is for self hosting the server and the web application of Ente Photos using docker compose and an external S3 bucket. So we assume that you already have the keys and secrets for the S3 bucket. The plan is as follows: @@ -17,14 +25,6 @@ have the keys and secrets for the S3 bucket. The plan is as follows: 4. Create an account and increase storage quota 5. Fix potential CORS issue with your bucket -> [!NOTE] -> -> This is a community contributed guide, and some of these steps might be out of -> sync with the upstream documentation. If something is not working correctly, -> please also see the latest -> [READMEs](https://github.com/ente-io/ente/blob/main/server/README.md) in the -> repository and/or other guides in [self-hosting](/self-hosting/). - ## 1. Create a `compose.yaml` file After cloning the main repository with @@ -40,7 +40,6 @@ Create a `compose.yaml` file at the root of the project with the following content (there is nothing to change here): ```yaml -version: "3" services: museum: build: @@ -236,9 +235,10 @@ background). ## 4. Create an account and increase storage quota -Open `http://localhost:8081` (or the url of your server) in your browser and -create an account. Choose 123456 as the value for the one-time token if your -email has the correct domain as defined in the `.credentials.env` file. +Open `http://localhost:8080` or whatever Endpoint you mentioned for the web app and create an account. +If your SMTP related configurations are all set and right, you will receive an email with +your OTT in it. There are two work arounds to retrieve the OTP, +checkout [this document](https://help.ente.io/self-hosting/faq/otp) for getting your OTT's.. If you successfully log in, select any plan and increase the storage quota with the following command: @@ -251,6 +251,9 @@ After few reloads, you should see 1 To of quota. ## 5. Fix potential CORS issue with your bucket + +### For AWS S3 + If you cannot upload a photo due to a CORS issue, you need to fix the CORS configuration of your bucket. @@ -272,14 +275,28 @@ Create a `cors.json` file with the following content: You may want to change the `AllowedOrigins` to a more restrictive value. -Then run the following command with the aws command to update the CORS -configuration of your bucket: +If you are using AWS for S3, you can execute the below command to get rid of CORS. Make sure to enter the right path for the `cors.json` file. ```bash -aws s3api put-bucket-cors --bucket YOUR_S3_BUCKET --cors-configuration file://cors.json +aws s3api put-bucket-cors --bucket YOUR_S3_BUCKET --cors-configuration /path/to/cors.json ``` -Upload should now work. +### For Self-hosted Minio Instance + +> Important: MinIO does not take JSON CORS file as the input, instead you will have to build a CORS.xml file or just convert the above `cors.json` to XML. + +A minor requirement here is the tool `mc` for managing buckets via command line interface. Checkout the `mc set alias` document to configure alias for your instance and bucket. +After this you will be prompted for your AccessKey and Secret, which is your username and password, go ahead and enter that. +```sh +mc cors set // set "cors_allowed_origin=*" +``` +You can create also `.csv` file and dump the list of origins you would like to allow and replace the `*` with `path` to the CSV file. + +Now, uploads should be working fine. ## Related