[docs] fix linting for self-hosting
This commit is contained in:
@@ -1,7 +1,6 @@
|
||||
import { defineConfig } from "vitepress";
|
||||
import { sidebar } from "./sidebar";
|
||||
|
||||
|
||||
// https://vitepress.dev/reference/site-config
|
||||
export default defineConfig({
|
||||
title: "Ente Help",
|
||||
@@ -28,7 +27,7 @@ export default defineConfig({
|
||||
},
|
||||
sidebar: sidebar,
|
||||
outline: {
|
||||
level: [2, 3]
|
||||
level: [2, 3],
|
||||
},
|
||||
socialLinks: [
|
||||
{ icon: "github", link: "https://github.com/ente-io/ente/" },
|
||||
|
||||
@@ -281,8 +281,7 @@ export const sidebar = [
|
||||
{
|
||||
text: "Upgrade",
|
||||
link: "/self-hosting/installation/upgrade",
|
||||
}
|
||||
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
@@ -309,7 +308,6 @@ export const sidebar = [
|
||||
text: "Backup",
|
||||
link: "/self-hosting/administration/backup",
|
||||
},
|
||||
|
||||
],
|
||||
},
|
||||
{
|
||||
@@ -318,9 +316,9 @@ export const sidebar = [
|
||||
items: [
|
||||
{
|
||||
text: "Building mobile apps",
|
||||
link: "/self-hosting/development/mobile-build"
|
||||
}
|
||||
]
|
||||
link: "/self-hosting/development/mobile-build",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
text: "Community Guides",
|
||||
|
||||
@@ -105,8 +105,7 @@ Ente Auth offers various import and export options for your codes.
|
||||
automatically via the CLI.
|
||||
- **Import:** Import codes from various other authentication apps.
|
||||
|
||||
For detailed instructions, refer to the
|
||||
[migration guides](../migration/).
|
||||
For detailed instructions, refer to the [migration guides](../migration/).
|
||||
|
||||
### Deduplicate codes
|
||||
|
||||
|
||||
@@ -19,11 +19,11 @@ have been developed and made available for mobile, web and desktop, namely:
|
||||
|
||||
## History
|
||||
|
||||
Ente was founded by Vishnu Mohandas (Ente's CEO) in response to privacy
|
||||
concerns with major tech companies. The underlying motivation was the
|
||||
understanding that big tech had no incentive to fix their act, but with
|
||||
end-to-end encrypted cross platform apps, there was a way for people to take
|
||||
back control over their own data without sacrificing on features.
|
||||
Ente was founded by Vishnu Mohandas (Ente's CEO) in response to privacy concerns
|
||||
with major tech companies. The underlying motivation was the understanding that
|
||||
big tech had no incentive to fix their act, but with end-to-end encrypted cross
|
||||
platform apps, there was a way for people to take back control over their own
|
||||
data without sacrificing on features.
|
||||
|
||||
### Origin of the name
|
||||
|
||||
|
||||
@@ -13,9 +13,10 @@ A functional Ente backend needs three things:
|
||||
|
||||
Thus, when thinking about backups:
|
||||
|
||||
1. For Museum, you should backup your `museum.yaml`, `credentials.yaml` or
|
||||
any other custom configuration that you created.
|
||||
2. The entire data volume needs to be backed up for the database and object storage.
|
||||
1. For Museum, you should backup your `museum.yaml`, `credentials.yaml` or any
|
||||
other custom configuration that you created.
|
||||
2. The entire data volume needs to be backed up for the database and object
|
||||
storage.
|
||||
|
||||
A common oversight is taking a lot of care for backing up the object storage,
|
||||
even going as far as enabling replication and backing up the the multiple object
|
||||
@@ -28,19 +29,19 @@ database contains information like a file specific encryption key.
|
||||
Viewed differently, to decrypt your data you need three pieces of information:
|
||||
|
||||
1. The encrypted file data itself (which comes from the object storage backup).
|
||||
2. The encrypted file and collection specific encryption keys
|
||||
(which come from the database backup).
|
||||
2. The encrypted file and collection specific encryption keys (which come from
|
||||
the database backup).
|
||||
3. The master key (which comes from your password).
|
||||
|
||||
If you're starting out with self hosting, we recommend keeping plaintext backup of your photos.
|
||||
If you're starting out with self hosting, we recommend keeping plaintext backup
|
||||
of your photos.
|
||||
|
||||
[You can use the CLI or the desktop app to automate this](/photos/faq/export).
|
||||
|
||||
Once you get more comfortable with the various parts, you can try backing up
|
||||
your instance.
|
||||
|
||||
If you rely on your instance backup, ensure that you do full
|
||||
restoration to verify that you are able to access your data.
|
||||
If you rely on your instance backup, ensure that you do full restoration to
|
||||
verify that you are able to access your data.
|
||||
|
||||
As the industry saying goes, a backup without a restore is no backup at
|
||||
all.
|
||||
As the industry saying goes, a backup without a restore is no backup at all.
|
||||
|
||||
@@ -5,18 +5,17 @@ description: Guide to configuring Ente CLI for Self Hosted Instance
|
||||
|
||||
# Ente CLI for self-hosted instance
|
||||
|
||||
If you are self-hosting, you can configure Ente CLI to export data &
|
||||
perform basic administrative actions.
|
||||
If you are self-hosting, you can configure Ente CLI to export data & perform
|
||||
basic administrative actions.
|
||||
|
||||
## Step 1: Configure endpoint
|
||||
|
||||
To do this, first configure the CLI to use your server's endpoint.
|
||||
|
||||
Define `config.yaml` and place it in `~/.ente/` or directory
|
||||
specified by `ENTE_CLI_CONFIG_DIR` or directory where Ente CLI
|
||||
is present.
|
||||
Define `config.yaml` and place it in `~/.ente/` or directory specified by
|
||||
`ENTE_CLI_CONFIG_DIR` or directory where Ente CLI is present.
|
||||
|
||||
``` yaml
|
||||
```yaml
|
||||
# Set the API endpoint to your domain where Museum is being served.
|
||||
endpoint:
|
||||
api: http://localhost:8080
|
||||
@@ -29,42 +28,56 @@ You can whitelist administrator users by following this
|
||||
|
||||
## Step 3: Add an account
|
||||
|
||||
::: info You can not create new accounts using Ente CLI.
|
||||
::: info You can not create new accounts using Ente CLI.
|
||||
|
||||
You can only log in to your existing accounts.
|
||||
|
||||
To create a new account, use Ente Photos (or Ente Auth) web application, desktop or mobile.
|
||||
To create a new account, use Ente Photos (or Ente Auth) web application, desktop
|
||||
or mobile.
|
||||
|
||||
:::
|
||||
|
||||
You can add your existing account using Ente CLI.
|
||||
|
||||
``` shell
|
||||
```shell
|
||||
ente account add
|
||||
```
|
||||
|
||||
This should prompt you for authentication details and export directory.
|
||||
Your account should be added after successful authentication.
|
||||
This should prompt you for authentication details and export directory. Your
|
||||
account should be added after successful authentication.
|
||||
|
||||
It can be used for exporting data (for plain-text backup),
|
||||
managing Ente Auth and performing administrative actions.
|
||||
It can be used for exporting data (for plain-text backup), managing Ente Auth
|
||||
and performing administrative actions.
|
||||
|
||||
## Step 4: Increase storage and account validity
|
||||
|
||||
You can use `ente admin update-subscription` to increase
|
||||
storage quota and account validity (duration).
|
||||
You can use `ente admin update-subscription` to increase storage quota and
|
||||
account validity (duration).
|
||||
|
||||
For infinite storage and validity, use the following command:
|
||||
|
||||
``` shell
|
||||
ente admin update-subscription -a <admin-user-mail> -u <user-email-to-update> --no-limit
|
||||
```shell
|
||||
ente admin update-subscription -a <admin-user-mail> -u <user-email-to-update> --no-limit
|
||||
|
||||
# Set a limit
|
||||
ente admin update-subscription -a <admin-user-mail> -u <user-email-to-update> --no-limit False
|
||||
```
|
||||
|
||||
For more information, check out the documentation for setting
|
||||
::: info The users must be registered on the server with same e-mail address.
|
||||
|
||||
If the commands are failing, ensure:
|
||||
|
||||
1. `<admin-user-mail>` is whitelisted as administrator user in `museum.yaml`.
|
||||
For more information, check this
|
||||
[guide](/self-hosting/administration/users#whitelist-admins).
|
||||
2. `<user-email-to-update>` is a registered user with completed verification.
|
||||
|
||||
:::
|
||||
|
||||
For more information, check out the documentation for setting
|
||||
[storage and account validity](https://github.com/ente-io/ente/blob/main/cli/docs/generated/ente_admin_update-subscription.md)
|
||||
using the CLI.
|
||||
|
||||
## References
|
||||
|
||||
1. [Ente CLI Documentation](https://github.com/ente-io/ente/blob/main/cli/docs/generated)
|
||||
1. [Ente CLI Documentation](https://github.com/ente-io/ente/blob/main/cli/docs/generated)
|
||||
|
||||
@@ -1,17 +1,20 @@
|
||||
---
|
||||
title: Configuring Object Storage - Self-hosting
|
||||
description:
|
||||
Configure Object Storage for storing files along with some troubleshooting tips
|
||||
Configure Object Storage for storing files along with some troubleshooting
|
||||
tips
|
||||
---
|
||||
|
||||
# Configuring Object Storage
|
||||
|
||||
Ente relies on [S3-compatible](https://docs.aws.amazon.com/s3/) cloud storage for
|
||||
storing files (photos, thumbnails and videos) as objects.
|
||||
Ente relies on [S3-compatible](https://docs.aws.amazon.com/s3/) cloud storage
|
||||
for storing files (photos, thumbnails and videos) as objects.
|
||||
|
||||
Ente ships MinIO as S3-compatible storage by default in quickstart and Docker Compose for quick testing.
|
||||
Ente ships MinIO as S3-compatible storage by default in quickstart and Docker
|
||||
Compose for quick testing.
|
||||
|
||||
This document outlines configuration of S3 buckets and enabling replication for further usage.
|
||||
This document outlines configuration of S3 buckets and enabling replication for
|
||||
further usage.
|
||||
|
||||
## Museum
|
||||
|
||||
@@ -21,53 +24,61 @@ The S3-compatible buckets have to be configured in `museum.yaml` file.
|
||||
|
||||
Some of the common configuration that can be done at top-level are:
|
||||
|
||||
1. **SSL Configuration:** If you need to configure SSL (i. e., the buckets are accessible via HTTPS),
|
||||
you'll need to set `s3.are_local_buckets` to `false`.
|
||||
2. **Path-style URLs:** Disabling `s3.are_local_buckets` also switches to the subdomain-style URLs for
|
||||
the buckets. However, some S3 providers such as MinIO do not support this.
|
||||
|
||||
1. **SSL Configuration:** If you need to configure SSL (i. e., the buckets are
|
||||
accessible via HTTPS), you'll need to set `s3.are_local_buckets` to `false`.
|
||||
2. **Path-style URLs:** Disabling `s3.are_local_buckets` also switches to the
|
||||
subdomain-style URLs for the buckets. However, some S3 providers such as
|
||||
MinIO do not support this.
|
||||
|
||||
Set `s3.use_path_style_urls` to `true` for such cases.
|
||||
|
||||
### Replication
|
||||
|
||||
> [!IMPORTANT]
|
||||
>
|
||||
> Replication works only if all 3 storage buckets are configured (2 hot and 1 cold storage).
|
||||
> Replication works only if all 3 storage buckets are configured (2 hot and 1
|
||||
> cold storage).
|
||||
>
|
||||
> For more information, check [this discussion](https://github.com/ente-io/ente/discussions/3167#discussioncomment-10585970)
|
||||
> For more information, check
|
||||
> [this discussion](https://github.com/ente-io/ente/discussions/3167#discussioncomment-10585970)
|
||||
> and our article on ensuring [reliability](https://ente.io/reliability/).
|
||||
|
||||
Replication is disabled by default in self-hosted instance. Only the first bucket (`b2-eu-cen`) is used.
|
||||
Replication is disabled by default in self-hosted instance. Only the first
|
||||
bucket (`b2-eu-cen`) is used.
|
||||
|
||||
Only the names are specifically fixed, you can put any other keys in configuration body.
|
||||
Only the names are specifically fixed, you can put any other keys in
|
||||
configuration body.
|
||||
|
||||
Use the `s3.hot_storage.primary` option if you'd like to set one of the other pre-defined buckets as the primary bucket.
|
||||
Use the `s3.hot_storage.primary` option if you'd like to set one of the other
|
||||
pre-defined buckets as the primary bucket.
|
||||
|
||||
### Bucket configuration
|
||||
|
||||
The keys `b2-eu-cen` (primary storage), `wasabi-eu-central-2-v3` (secondary storage)
|
||||
and `scw-eu-fr-v3` (cold storage) are hardcoded, however, the keys and secret can be anything.
|
||||
The keys `b2-eu-cen` (primary storage), `wasabi-eu-central-2-v3` (secondary
|
||||
storage) and `scw-eu-fr-v3` (cold storage) are hardcoded, however, the keys and
|
||||
secret can be anything.
|
||||
|
||||
It has no relation to Backblaze, Wasabi or Scaleway.
|
||||
|
||||
Each bucket's endpoint, region, key and secret should be configured accordingly
|
||||
if using an external bucket.
|
||||
|
||||
Additionally, you can enable SSL and path-style URL for specific buckets, which provides
|
||||
flexibility for storage. If this is not configured, top level configuration (`s3.are_local_buckets`
|
||||
and `s3.use_path_style_urls`) is used.
|
||||
Additionally, you can enable SSL and path-style URL for specific buckets, which
|
||||
provides flexibility for storage. If this is not configured, top level
|
||||
configuration (`s3.are_local_buckets` and `s3.use_path_style_urls`) is used.
|
||||
|
||||
A sample configuration for `b2-eu-cen` is provided, which can be used for other 2 buckets as well:
|
||||
A sample configuration for `b2-eu-cen` is provided, which can be used for other
|
||||
2 buckets as well:
|
||||
|
||||
``` yaml
|
||||
b2-eu-cen:
|
||||
are_local_buckets: true
|
||||
use_path_style_urls: true
|
||||
key: <key>
|
||||
secret: <secret>
|
||||
endpoint: localhost:3200
|
||||
region: eu-central-2
|
||||
bucket: b2-eu-cen
|
||||
```yaml
|
||||
b2-eu-cen:
|
||||
are_local_buckets: true
|
||||
use_path_style_urls: true
|
||||
key: <key>
|
||||
secret: <secret>
|
||||
endpoint: localhost:3200
|
||||
region: eu-central-2
|
||||
bucket: b2-eu-cen
|
||||
```
|
||||
|
||||
## CORS (Cross-Origin Resource Sharing)
|
||||
@@ -77,7 +88,7 @@ configuration of your bucket.
|
||||
|
||||
Use the content provided below for creating a `cors.json` file:
|
||||
|
||||
``` json
|
||||
```json
|
||||
{
|
||||
"CORSRules": [
|
||||
{
|
||||
@@ -91,14 +102,14 @@ Use the content provided below for creating a `cors.json` file:
|
||||
}
|
||||
```
|
||||
|
||||
You may have to change the `AllowedOrigins` to allow only certain origins
|
||||
(your Ente web apps and Museum) for security.
|
||||
You may have to change the `AllowedOrigins` to allow only certain origins (your
|
||||
Ente web apps and Museum) for security.
|
||||
|
||||
Assuming you have AWS CLI on your system and that you have configured
|
||||
it with your access key and secret, you can execute the below command to
|
||||
set bucket CORS. Make sure to enter the right path for the `cors.json` file.
|
||||
Assuming you have AWS CLI on your system and that you have configured it with
|
||||
your access key and secret, you can execute the below command to set bucket
|
||||
CORS. Make sure to enter the right path for the `cors.json` file.
|
||||
|
||||
``` shell
|
||||
```shell
|
||||
aws s3api put-bucket-cors --bucket YOUR_S3_BUCKET --cors-configuration /path/to/cors.json
|
||||
```
|
||||
|
||||
@@ -106,22 +117,23 @@ aws s3api put-bucket-cors --bucket YOUR_S3_BUCKET --cors-configuration /path/to/
|
||||
|
||||
Assuming you have configured an alias for MinIO account using the command:
|
||||
|
||||
``` shell
|
||||
```shell
|
||||
mc alias set storage-account-alias minio-endpoint minio-key minio-secret
|
||||
```
|
||||
|
||||
where,
|
||||
|
||||
1. `storage-account-alias` is a valid storage account alias name
|
||||
2. `minio-endpoint` is the endpoint where MinIO is being served without the protocol (http or https). Example: `localhost:3200`
|
||||
2. `minio-endpoint` is the endpoint where MinIO is being served without the
|
||||
protocol (http or https). Example: `localhost:3200`
|
||||
3. `minio-key` is the MinIO username defined in `MINIO_ROOT_USER`
|
||||
4. `minio-secret` is the MinIO password defined in `MINIO_PASSWORD`
|
||||
|
||||
To set the `AllowedOrigins` Header, you can use the
|
||||
following command:.
|
||||
To set the `AllowedOrigins` Header, you can use the following command:.
|
||||
|
||||
``` shell
|
||||
```shell
|
||||
mc admin config set storage-account-alias api cors_allow_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.
|
||||
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.
|
||||
|
||||
@@ -5,38 +5,37 @@ Description: Configuring reverse proxy for Museum and other services
|
||||
|
||||
# Reverse proxy
|
||||
|
||||
Reverse proxy helps in making application services
|
||||
accessible via the Internet without exposing multiple
|
||||
ports for various services.
|
||||
Reverse proxy helps in making application services accessible via the Internet
|
||||
without exposing multiple ports for various services.
|
||||
|
||||
It also allows configuration of HTTPS through SSL certificate management.
|
||||
|
||||
We highly recommend using HTTPS for Museum (Ente's server). For security reasons, Museum
|
||||
will not accept incoming HTTP traffic.
|
||||
We highly recommend using HTTPS for Museum (Ente's server). For security
|
||||
reasons, Museum will not accept incoming HTTP traffic.
|
||||
|
||||
## Pre-requisites
|
||||
|
||||
1. **Reverse Proxy:** We recommend using Caddy for simplicity of
|
||||
configuration and automatic certificate generation and management,
|
||||
although you can use other alternatives such as NGINX, Traefik, etc.
|
||||
|
||||
1. **Reverse Proxy:** We recommend using Caddy for simplicity of configuration
|
||||
and automatic certificate generation and management, although you can use
|
||||
other alternatives such as NGINX, Traefik, etc.
|
||||
|
||||
Install Caddy using the following command on Debian/Ubuntu-based systems:
|
||||
``` shell
|
||||
|
||||
```shell
|
||||
sudo apt install caddy
|
||||
```
|
||||
|
||||
Start the service and enable it to start upon system boot.
|
||||
|
||||
``` shell
|
||||
```shell
|
||||
sudo systemctl start caddy
|
||||
|
||||
sudo systemctl enable caddy
|
||||
```
|
||||
|
||||
## Step 1: Configure A or AAAA records
|
||||
|
||||
Set up the appropriate records for the endpoints in your DNS
|
||||
management dashboard (usually associated with your domain registrar).
|
||||
Set up the appropriate records for the endpoints in your DNS management
|
||||
dashboard (usually associated with your domain registrar).
|
||||
|
||||
`A` or `AAAA` records pointing to your server's IP address are sufficient.
|
||||
|
||||
@@ -46,8 +45,8 @@ DNS propagation can take a few minutes to take effect.
|
||||
|
||||
## Step 2: Configure reverse proxy
|
||||
|
||||
After installing Caddy, `Caddyfile` is created at
|
||||
`/etc/caddy/`. Edit `/etc/caddy/Caddyfile` to configure reverse proxies.
|
||||
After installing Caddy, `Caddyfile` is created at `/etc/caddy/`. Edit
|
||||
`/etc/caddy/Caddyfile` to configure reverse proxies.
|
||||
|
||||
You can edit the minimal configuration provided below for your own needs.
|
||||
|
||||
@@ -89,15 +88,14 @@ cast.ente.yourdomain.tld {
|
||||
|
||||
Reload Caddy for changes to take effect.
|
||||
|
||||
``` shell
|
||||
```shell
|
||||
sudo systemctl caddy reload
|
||||
```
|
||||
|
||||
## Step 4: Verify the setup
|
||||
|
||||
Ente Photos web app should be up on https://web.ente.yourdomain.tld and
|
||||
Museum at https://api.ente.yourdomain.tld.
|
||||
Ente Photos web app should be up on https://web.ente.yourdomain.tld and Museum
|
||||
at https://api.ente.yourdomain.tld.
|
||||
|
||||
> [!TIP]
|
||||
> If you are using other reverse proxy servers such as NGINX,
|
||||
> Traefik, etc., please check out their documentation.
|
||||
> [!TIP] If you are using other reverse proxy servers such as NGINX, Traefik,
|
||||
> etc., please check out their documentation.
|
||||
|
||||
@@ -6,53 +6,73 @@ description: Guide to configuring Ente CLI for Self Hosted Instance
|
||||
# User Management
|
||||
|
||||
You may wish to self-host Ente for your family or close circle. In such cases,
|
||||
you may wish to enable administrative access for few users, disable new registrations,
|
||||
manage one-time tokens (OTTs), etc.
|
||||
you may wish to enable administrative access for few users, disable new
|
||||
registrations, manage one-time tokens (OTTs), etc.
|
||||
|
||||
This document covers the details on how you can administer users on your server.
|
||||
|
||||
## Whitelist admins
|
||||
|
||||
The administrator users have to be explicitly whitelisted in `museum.yaml`. You can achieve this
|
||||
the following steps:
|
||||
The administrator users have to be explicitly whitelisted in `museum.yaml`. You
|
||||
can achieve this the following steps:
|
||||
|
||||
1. Connect to `ente_db` (the database used for storing data
|
||||
related to Ente).
|
||||
``` shell
|
||||
# Change the DB name and DB user name if you use different values.
|
||||
1. Connect to `ente_db` (the database used for storing data related to Ente).
|
||||
|
||||
```shell
|
||||
# Change the DB name and DB user name if you use different
|
||||
# values.
|
||||
# If using Docker
|
||||
docker exec -it <postgres-ente-container-name> psql -U pguser -d ente_db
|
||||
|
||||
docker exec -it <postgres-ente-container-name>
|
||||
psql -U pguser -d ente_db
|
||||
|
||||
# Or when using psql directly
|
||||
psql -U pguser -d ente_db
|
||||
psql -U pguser -d ente_db
|
||||
```
|
||||
|
||||
2. Get the user ID of the first user by running the following SQL query:
|
||||
``` sql
|
||||
2. Get the user ID of the first user by running the following SQL query:
|
||||
|
||||
```sql
|
||||
SELECT * from users;
|
||||
```
|
||||
|
||||
3. Edit `internal.admins` or `internal.admin` (if you wish to whitelist only single user) in `museum.yaml`
|
||||
to add the user ID you wish to whitelist.
|
||||
3. Edit `internal.admins` or `internal.admin` (if you wish to whitelist only
|
||||
single user) in `museum.yaml` to add the user ID you wish to whitelist.
|
||||
|
||||
- For multiple admins:
|
||||
``` yaml
|
||||
|
||||
```yaml
|
||||
internal:
|
||||
admins:
|
||||
- <user_id>
|
||||
```
|
||||
|
||||
- For single admin:
|
||||
``` yaml
|
||||
|
||||
```yaml
|
||||
internal:
|
||||
admin: <user_id>
|
||||
```
|
||||
|
||||
4. Restart Museum by restarting the cluster
|
||||
4. Restart Museum by restarting the cluster
|
||||
|
||||
::: tip Restart your Compose clusters whenever you make changes
|
||||
|
||||
If you have edited the Compose file or configuration file (`museum.yaml`), make
|
||||
sure to recreate the cluster's containers.
|
||||
|
||||
You can do this by the following command:
|
||||
|
||||
```shell
|
||||
docker compose down && docker compose up -d
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
## Increase storage and account validity
|
||||
|
||||
You can use Ente CLI for increasing storage quota and account validity for
|
||||
users on your instance. Check this guide for more
|
||||
You can use Ente CLI for increasing storage quota and account validity for users
|
||||
on your instance. Check this guide for more
|
||||
[information](/self-hosting/administration/cli#step-4-increase-storage-and-account-validity)
|
||||
|
||||
## Handle user verification codes
|
||||
@@ -60,19 +80,21 @@ users on your instance. Check this guide for more
|
||||
Ente currently relies on verification codes for completion of registration.
|
||||
|
||||
These are accessible in server logs. If using Docker Compose, they can be
|
||||
accessed by running `sudo docker compose logs` in the cluster folder where Compose
|
||||
file resides.
|
||||
accessed by running `sudo docker compose logs` in the cluster folder where
|
||||
Compose file resides.
|
||||
|
||||
However, you may wish to streamline this workflow. You can follow one of the 2 methods
|
||||
if you wish to have many users in the system.
|
||||
However, you may wish to streamline this workflow. You can follow one of the 2
|
||||
methods if you wish to have many users in the system.
|
||||
|
||||
### Use hardcoded OTTs
|
||||
|
||||
You can configure to use hardcoded OTTs only for specific emails, or based on suffix.
|
||||
You can configure to use hardcoded OTTs only for specific emails, or based on
|
||||
suffix.
|
||||
|
||||
A sample configuration for the same is provided below, which is to be used in `museum.yaml`:
|
||||
A sample configuration for the same is provided below, which is to be used in
|
||||
`museum.yaml`:
|
||||
|
||||
``` yaml
|
||||
```yaml
|
||||
internal:
|
||||
hardcoded-ott:
|
||||
emails:
|
||||
@@ -81,17 +103,18 @@ internal:
|
||||
local-domain-value: 012345
|
||||
```
|
||||
|
||||
This sets OTT to 123456 for the email address example@example.com and 012345 for emails having @example.com as suffix.
|
||||
This sets OTT to 123456 for the email address example@example.com and 012345 for
|
||||
emails having @example.com as suffix.
|
||||
|
||||
### Send email with verification code
|
||||
|
||||
You can configure SMTP for sending verification code e-mails to users, which
|
||||
is efficient if you do not know mail addresses of people for who you want to hardcode
|
||||
OTTs or if you are serving larger audience.
|
||||
You can configure SMTP for sending verification code e-mails to users, which is
|
||||
efficient if you do not know mail addresses of people for who you want to
|
||||
hardcode OTTs or if you are serving larger audience.
|
||||
|
||||
Set the host and port accordingly with your credentials in `museum.yaml`
|
||||
|
||||
``` yaml
|
||||
```yaml
|
||||
smtp:
|
||||
host:
|
||||
port:
|
||||
@@ -106,11 +129,11 @@ smtp:
|
||||
|
||||
## Disable registrations
|
||||
|
||||
For security purposes, you may choose to disable registrations on your instance. You can disable new
|
||||
registrations by using the following configuration in `museum.yaml`.
|
||||
For security purposes, you may choose to disable registrations on your instance.
|
||||
You can disable new registrations by using the following configuration in
|
||||
`museum.yaml`.
|
||||
|
||||
``` yaml
|
||||
```yaml
|
||||
internal:
|
||||
disable-registration: true
|
||||
```
|
||||
|
||||
|
||||
@@ -12,6 +12,10 @@ See the sidebar for existing guides. In particular:
|
||||
|
||||
- If you're just looking to get started, see installation.
|
||||
|
||||
- For various administrative tasks, e.g. increasing the storage quota for user on your self-hosted instance, see [user management](/self-hosting/administration/users).
|
||||
- For various administrative tasks, e.g. increasing the storage quota for user
|
||||
on your self-hosted instance, see
|
||||
[user management](/self-hosting/administration/users).
|
||||
|
||||
- For configuring your S3 buckets to get the object storage to work from your mobile device or for fixing an upload errors, see [object storage](/self-hosting/administration/object-storage).
|
||||
- For configuring your S3 buckets to get the object storage to work from your
|
||||
mobile device or for fixing an upload errors, see
|
||||
[object storage](/self-hosting/administration/object-storage).
|
||||
|
||||
@@ -5,15 +5,19 @@ description: Running Ente services (Museum and web application) via systemd
|
||||
|
||||
# Running Ente using `systemd`
|
||||
|
||||
On Linux distributions using `systemd` as initialization system, Ente can be configured to run as a background service, upon system startup by service files.
|
||||
On Linux distributions using `systemd` as initialization system, Ente can be
|
||||
configured to run as a background service, upon system startup by service files.
|
||||
|
||||
## Museum as a background service
|
||||
|
||||
Please check the below links if you want to run Museum as a service, both of them are battle tested.
|
||||
Please check the below links if you want to run Museum as a service, both of
|
||||
them are battle tested.
|
||||
|
||||
1. [How to run museum as a systemd service](https://gist.github.com/mngshm/a0edb097c91d1dc45aeed755af310323)
|
||||
2. [Museum.service](https://github.com/ente-io/ente/blob/23e678889189157ecc389c258267685934b83631/server/scripts/deploy/museum.service#L4)
|
||||
|
||||
Once you are done with setting and running Museum, all you are left to do is run the web app and set up reverse proxy. Check out the documentation for [more information](/self-hosting/installation/manual#step-3-configure-web-application).
|
||||
Once you are done with setting and running Museum, all you are left to do is run
|
||||
the web app and set up reverse proxy. Check out the documentation for
|
||||
[more information](/self-hosting/installation/manual#step-3-configure-web-application).
|
||||
|
||||
> **Credits:** [mngshm](https://github.com/mngshm)
|
||||
> **Credits:** [mngshm](https://github.com/mngshm)
|
||||
|
||||
@@ -348,4 +348,4 @@ This will list all account details. Copy Acount ID.
|
||||
> `docker restart ente-museum-1`. All well, now you will have 100TB storage.
|
||||
> Repeat if for any other accounts you want to give unlimited storage access.
|
||||
|
||||
> **Credits:** [A4alli](https://github.com/A4alli)
|
||||
> **Credits:** [A4alli](https://github.com/A4alli)
|
||||
|
||||
@@ -7,12 +7,13 @@ description: Getting started with self-hosting Ente
|
||||
|
||||
If you're looking to spin up Ente on your server, you are in the right place!
|
||||
|
||||
Our entire source code ([including the server](https://ente.io/blog/open-sourcing-our-server/))
|
||||
is open source. This is the same code we use on production.
|
||||
Our entire source code
|
||||
([including the server](https://ente.io/blog/open-sourcing-our-server/)) is open
|
||||
source. This is the same code we use on production.
|
||||
|
||||
For a quick preview, make sure your system meets the requirements mentioned below.
|
||||
After trying the preview, you can explore other ways of self-hosting Ente on your
|
||||
server as described in the documentation.
|
||||
For a quick preview, make sure your system meets the requirements mentioned
|
||||
below. After trying the preview, you can explore other ways of self-hosting Ente
|
||||
on your server as described in the documentation.
|
||||
|
||||
## Requirements
|
||||
|
||||
@@ -30,20 +31,19 @@ Run this command on your terminal to setup Ente.
|
||||
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ente-io/ente/main/server/quickstart.sh)"
|
||||
```
|
||||
|
||||
This creates a directory `my-ente` in the current working
|
||||
directory, prompts to start the cluster with needed containers
|
||||
after pulling the images required to run Ente.
|
||||
This creates a directory `my-ente` in the current working directory, prompts to
|
||||
start the cluster with needed containers after pulling the images required to
|
||||
run Ente.
|
||||
|
||||
::: note
|
||||
Make sure to modify the default values in `compose.yaml` and `museum.yaml`
|
||||
if you wish to change endpoints, bucket configuration or server configuration.
|
||||
:::
|
||||
::: note Make sure to modify the default values in `compose.yaml` and
|
||||
`museum.yaml` if you wish to change endpoints, bucket configuration or server
|
||||
configuration. :::
|
||||
|
||||
## Try the web app
|
||||
|
||||
Open Ente Photos web app at `http://<machine-ip>:3000` (or `http://localhost:3000` if
|
||||
using on same local machine). Select **Don't have an account?** to create a
|
||||
new user.
|
||||
Open Ente Photos web app at `http://<machine-ip>:3000` (or
|
||||
`http://localhost:3000` if using on same local machine). Select **Don't have an
|
||||
account?** to create a new user.
|
||||
|
||||
Follow the prompts to sign up.
|
||||
|
||||
@@ -52,27 +52,36 @@ Follow the prompts to sign up.
|
||||
<img alt="Sign up page" src="/sign-up.png" style="width: 50%; height: auto;">
|
||||
</div>
|
||||
|
||||
Enter verification code by checking the cluster logs using `sudo docker compose logs`.
|
||||
Enter the verification code by checking the cluster logs using
|
||||
`sudo docker compose logs`.
|
||||
|
||||

|
||||
|
||||
Upload a picture via the web user interface.
|
||||
|
||||
Alternatively, if using Ente Auth, get started by adding an account (assuming you are running Ente Auth at `http://<machine-ip>:3002` or `http://localhost:3002`).
|
||||
Alternatively, if using Ente Auth, get started by adding an account (assuming
|
||||
you are running Ente Auth at `http://<machine-ip>:3002` or
|
||||
`http://localhost:3002`).
|
||||
|
||||
## Try the mobile app
|
||||
|
||||
You can install Ente Photos from [here](/photos/faq/installing) and Ente Auth from [here](/auth/faq/installing).
|
||||
You can install Ente Photos from [here](/photos/faq/installing) and Ente Auth
|
||||
from [here](/auth/faq/installing).
|
||||
|
||||
Connect to your server from [mobile apps](/self-hosting/installation/post-install/#step-6-configure-apps-to-use-your-server).
|
||||
Connect to your server from
|
||||
[mobile apps](/self-hosting/installation/post-install/#step-6-configure-apps-to-use-your-server).
|
||||
|
||||
## What next?
|
||||
|
||||
You may wish to install using a different way for your needs. Check the "Installation" section for information regarding that.
|
||||
You may wish to install using a different way for your needs. Check the
|
||||
"Installation" section for information regarding that.
|
||||
|
||||
You can import your pictures from Google Takeout or from other services to Ente Photos. For more information, check out our [migration guide](/photos/migration/) for more information.
|
||||
You can import your pictures from Google Takeout or from other services to Ente
|
||||
Photos. For more information, check out our
|
||||
[migration guide](/photos/migration/) for more information.
|
||||
|
||||
You can import your codes from other authenticator providers to Ente Auth. Check out our [migration guide](/auth/migration/) for more information.
|
||||
You can import your codes from other authenticator providers to Ente Auth. Check
|
||||
out our [migration guide](/auth/migration/) for more information.
|
||||
|
||||
## Queries?
|
||||
|
||||
|
||||
@@ -9,35 +9,41 @@ If you wish to run Ente via Docker Compose from source, do the following:
|
||||
|
||||
## Requirements
|
||||
|
||||
Check out the [requirements](/self-hosting/installation/requirements) page to get started.
|
||||
Check out the [requirements](/self-hosting/installation/requirements) page to
|
||||
get started.
|
||||
|
||||
## Step 1: Clone the repository
|
||||
|
||||
Clone the repository. Change into the `server/config` directory of the repository, where the Compose file for running the cluster is present.
|
||||
Clone the repository. Change into the `server/config` directory of the
|
||||
repository, where the Compose file for running the cluster is present.
|
||||
|
||||
Run the following command for the same:
|
||||
|
||||
``` sh
|
||||
```sh
|
||||
git clone https://github.com/ente-io/ente
|
||||
cd ente/server/config
|
||||
```
|
||||
|
||||
## Step 2: Populate the configuration file and environment variables
|
||||
|
||||
In order to run the cluster, you will have to provide environment variable values.
|
||||
In order to run the cluster, you will have to provide environment variable
|
||||
values.
|
||||
|
||||
Copy the configuration files for modification by the following command inside `server/config` directory of the repository.
|
||||
Copy the configuration files for modification by the following command inside
|
||||
`server/config` directory of the repository.
|
||||
|
||||
This allows you to modify configuration without having to face hassle while pulling in latest changes.
|
||||
This allows you to modify configuration without having to face hassle while
|
||||
pulling in latest changes.
|
||||
|
||||
``` shell
|
||||
```shell
|
||||
# Inside the cloned repository's directory (usually `ente`)
|
||||
cd server/config
|
||||
cp example.env .env
|
||||
cp example.yaml museum.yaml
|
||||
```
|
||||
|
||||
Change the values present in `.env` file along with `museum.yaml` file accordingly.
|
||||
Change the values present in `.env` file along with `museum.yaml` file
|
||||
accordingly.
|
||||
|
||||
## Step 3: Start the cluster
|
||||
|
||||
@@ -47,8 +53,12 @@ Start the cluster by running the following command:
|
||||
docker compose up --build
|
||||
```
|
||||
|
||||
This builds Museum and web applications based on the Dockerfile and starts the containers needed for Ente.
|
||||
This builds Museum and web applications based on the Dockerfile and starts the
|
||||
containers needed for Ente.
|
||||
|
||||
::: tip
|
||||
Check out [post-installation steps](/self-hosting/installation/post-install/) for further usage.
|
||||
:::
|
||||
|
||||
Check out [post-installations steps](/self-hosting/installation/post-install/)
|
||||
for further usage.
|
||||
|
||||
:::
|
||||
|
||||
@@ -25,8 +25,7 @@ attempt to load `configurations/production.yaml`.
|
||||
|
||||
If `credentials-file` is defined and found, it overrides the defaults.
|
||||
|
||||
Self-hosted clusters generally use `museum.yaml` file for declaring
|
||||
configuration over directly editing `local.yaml`.
|
||||
Use `museum.yaml` file for declaring configuration over `local.yaml`.
|
||||
|
||||
All configuration values can be overridden via environment variables using the
|
||||
`ENTE_` prefix and replacing dots (`.`) or hyphens (`-`) with underscores (`_`).
|
||||
@@ -100,7 +99,9 @@ your provider's credentials, and set `are_local_buckets` to `false`.
|
||||
MinIO uses the port `3200` for API Endpoints. Web Console can be accessed at
|
||||
http://localhost:3201 by enabling port `3201` in the Compose file.
|
||||
|
||||
If you face any issues related to uploads then check out [CORS](/self-hosting/administration/object-storage#cors-cross-origin-resource-sharing) and [troubleshooting](/self-hosting/troubleshooting/uploads) sections.
|
||||
If you face any issues related to uploads then check out
|
||||
[CORS](/self-hosting/administration/object-storage#cors-cross-origin-resource-sharing)
|
||||
and [troubleshooting](/self-hosting/troubleshooting/uploads) sections.
|
||||
|
||||
| Variable | Description | Default |
|
||||
| -------------------------------------- | -------------------------------------------- | ------- |
|
||||
@@ -169,7 +170,7 @@ go run tools/gen-random-keys/main.go
|
||||
| `internal.silent` | Suppress external effects (e.g. email alerts) | `false` |
|
||||
| `internal.health-check-url` | External healthcheck URL | |
|
||||
| `internal.hardcoded-ott` | Predefined OTPs for testing | |
|
||||
| `internal.hardcoded-ott.emails` | E-mail addresses with hardcoded OTTs | `[]` |
|
||||
| `internal.hardcoded-ott.emails` | E-mail addresses with hardcoded OTTs | `[]` |
|
||||
| `internal.hardcoded-ott.local-domain-suffix` | Suffix for which hardcoded OTT is to be used | |
|
||||
| `internal.hardcoded-ott.local-domain-value` | Hardcoded OTT value for the above suffix | |
|
||||
| `internal.admins` | List of admin user IDs | `[]` |
|
||||
|
||||
@@ -7,14 +7,16 @@ description:
|
||||
|
||||
# Environment variables and defaults
|
||||
|
||||
The environment variables needed for running Ente and the default configuration are
|
||||
documented below:
|
||||
The environment variables needed for running Ente and the default configuration
|
||||
are documented below:
|
||||
|
||||
## Environment Variables
|
||||
|
||||
A self-hosted Ente instance requires specific endpoints in both Museum (the
|
||||
server) and web apps. This document outlines the essential environment variables
|
||||
and port mappings of the web apps.
|
||||
A self-hosted Ente instance has to specify endpoints for both Museum (the
|
||||
server) and web apps.
|
||||
|
||||
This document outlines the essential environment variables and port mappings of
|
||||
the web apps.
|
||||
|
||||
Here's the list of environment variables that is used by the cluster:
|
||||
|
||||
@@ -22,8 +24,8 @@ Here's the list of environment variables that is used by the cluster:
|
||||
| ---------- | --------------------- | ----------------------------------------------------------------------------------------------- | ------------------------------- |
|
||||
| `web` | `ENTE_API_ORIGIN` | Alias for `NEXT_PUBLIC_ENTE_ENDPOINT`. API Endpoint for Ente's API (Museum). | http://localhost:8080 |
|
||||
| `web` | `ENTE_ALBUMS_ORIGIN` | Alias for `NEXT_PUBLIC_ENTE_ALBUMS_ENDPOINT`. Base URL for Ente Album, used for public sharing. | http://localhost:3002 |
|
||||
| `postgres` | `POSTGRES_USER` | Username for PostgreSQL database | pguser |
|
||||
| `postgres` | `POSTGRES_DB` | Name of database for use with Ente | ente_db |
|
||||
| `postgres` | `POSTGRES_USER` | Username for PostgreSQL database | `pguser` |
|
||||
| `postgres` | `POSTGRES_DB` | Name of database for use with Ente | `ente_db` |
|
||||
| `postgres` | `POSTGRES_PASSWORD` | Password for PostgreSQL database's user | Randomly generated (quickstart) |
|
||||
| `minio` | `MINIO_ROOT_USER` | Username for MinIO | Randomly generated (quickstart) |
|
||||
| `minio` | `MINIO_ROOT_PASSWORD` | Password for MinIO | Randomly generated (quickstart) |
|
||||
@@ -35,7 +37,7 @@ which is documented below to understand its behavior:
|
||||
|
||||
### Ports
|
||||
|
||||
The below format is according to how ports are mapped in Docker when using
|
||||
The below format is according to how ports are mapped in Docker when using the
|
||||
quickstart script. The mapping is of the format `<host-port>:<container-port>`
|
||||
in `ports` in compose file.
|
||||
|
||||
|
||||
@@ -5,74 +5,82 @@ description: Installing and setting up Ente without Docker
|
||||
|
||||
# Manual setup (without Docker)
|
||||
|
||||
If you wish to run Ente from source without using Docker, follow the steps described below:
|
||||
If you wish to run Ente from source without using Docker, follow the steps
|
||||
described below:
|
||||
|
||||
## Requirements
|
||||
|
||||
1. **Go:** Install Go on your system. This is needed for building Museum (Ente's server)
|
||||
|
||||
``` shell
|
||||
1. **Go:** Install Go on your system. This is needed for building Museum (Ente's
|
||||
server)
|
||||
|
||||
```shell
|
||||
sudo apt update && sudo apt upgrade
|
||||
sudo apt install golang-go
|
||||
```
|
||||
|
||||
Alternatively, you can also download the latest binaries
|
||||
from the [official website](https://go.dev/dl/).
|
||||
Alternatively, you can also download the latest binaries from the
|
||||
[official website](https://go.dev/dl/).
|
||||
|
||||
2. **PostgreSQL and `libsodium`:** Install PostgreSQL (database) and `libsodium` (high level API for encryption) via package manager.
|
||||
|
||||
``` shell
|
||||
2. **PostgreSQL and `libsodium`:** Install PostgreSQL (database) and `libsodium`
|
||||
(high level API for encryption) via package manager.
|
||||
|
||||
```shell
|
||||
sudo apt install postgresql
|
||||
sudo apt install libsodium23 libsodium-dev
|
||||
```
|
||||
|
||||
Start the database using `systemd` automatically when the system starts.
|
||||
``` shell
|
||||
|
||||
```shell
|
||||
sudo systemctl enable postgresql
|
||||
sudo systemctl start postgresql
|
||||
```
|
||||
|
||||
Ensure the database is running using
|
||||
|
||||
``` shell
|
||||
```shell
|
||||
sudo systemctl status postgresql
|
||||
```
|
||||
|
||||
3. **`pkg-config`:** Install `pkg-config` for dependency handling.
|
||||
|
||||
``` shell
|
||||
|
||||
```shell
|
||||
sudo apt install pkg-config
|
||||
```
|
||||
|
||||
4. **yarn, npm and Node.js:** Needed for building the web application.
|
||||
|
||||
Install npm and Node using your package manager.
|
||||
|
||||
``` shell
|
||||
```shell
|
||||
sudo apt install npm nodejs
|
||||
```
|
||||
|
||||
Install yarn by following the [official documentation](https://yarnpkg.com/getting-started/install)
|
||||
Install yarn by following the
|
||||
[official documentation](https://yarnpkg.com/getting-started/install)
|
||||
|
||||
5. **Git:** Needed for cloning the repository and pulling in latest changes
|
||||
|
||||
6. **Caddy:** Used for setting reverse proxy and file servers
|
||||
|
||||
7. **Object Storage:** Ensure you have an object storage configured for usage,
|
||||
needed for storing files. You can choose to run MinIO or Garage locally
|
||||
without Docker, however, an external bucket will be reliable and suited
|
||||
for long-term storage.
|
||||
needed for storing files. You can choose to run MinIO or Garage locally
|
||||
without Docker, however, an external bucket will be reliable and suited for
|
||||
long-term storage.
|
||||
|
||||
## Step 1: Clone the repository
|
||||
|
||||
Start by cloning Ente's repository from GitHub to your local machine.
|
||||
|
||||
``` shell
|
||||
```shell
|
||||
git clone https://github.com/ente-io/ente
|
||||
```
|
||||
|
||||
## Step 2: Configure Museum (Ente's server)
|
||||
|
||||
1. Install all the needed dependencies for the server.
|
||||
``` shell
|
||||
1. Install all the needed dependencies for the server.
|
||||
|
||||
```shell
|
||||
# Change into server directory, where the source code for Museum is
|
||||
# present inside the repo
|
||||
cd ente/server
|
||||
@@ -81,33 +89,34 @@ git clone https://github.com/ente-io/ente
|
||||
go mod tidy
|
||||
```
|
||||
|
||||
2. Build the server. The server binary should be available as `./main`
|
||||
relative to `server` directory
|
||||
2. Build the server. The server binary should be available as `./main` relative
|
||||
to `server` directory
|
||||
|
||||
``` shell
|
||||
go build cmd/museum/main.go
|
||||
``` shell
|
||||
go build cmd/museum/main.go
|
||||
```
|
||||
|
||||
3. Create `museum.yaml` file inside `server` for configuring the needed
|
||||
variables. You can copy the templated configuration file for editing with
|
||||
ease.
|
||||
|
||||
```shell
|
||||
cp config/example.yaml ./museum.yaml
|
||||
```
|
||||
|
||||
3. Create `museum.yaml` file inside `server` for configuring the needed variables.
|
||||
You can copy the templated configuration file for editing with ease.
|
||||
4. Run the server
|
||||
|
||||
``` shell
|
||||
cp config/example.yaml ./museum.yaml
|
||||
```
|
||||
|
||||
4. Run the server
|
||||
|
||||
``` shell
|
||||
```shell
|
||||
./main
|
||||
```
|
||||
|
||||
|
||||
Museum should be accessible at `http://localhost:8080`
|
||||
|
||||
## Step 3: Configure Web Application
|
||||
|
||||
1. Install the dependencies for web application. Enable corepack if prompted.
|
||||
|
||||
``` shell
|
||||
|
||||
```shell
|
||||
# Change into web directory, this is where all the applications
|
||||
# will be managed and built
|
||||
cd web
|
||||
@@ -116,15 +125,17 @@ relative to `server` directory
|
||||
yarn install
|
||||
```
|
||||
|
||||
2. Configure the environment variables in your corresponding shell's configuration file
|
||||
(`.bashrc`, `.zshrc`)
|
||||
``` shell
|
||||
2. Configure the environment variables in your corresponding shell's
|
||||
configuration file (`.bashrc`, `.zshrc`)
|
||||
```shell
|
||||
# Replace this with actual endpoint for Museum
|
||||
export NEXT_PUBLIC_ENTE_ENDPOINT=http://localhost:8080
|
||||
# Replace this with actual endpoint for Albums
|
||||
export NEXT_PUBLIC_ENTE_ALBUMS_ENDPOINT=http://localhost:3002
|
||||
```
|
||||
3. Build the needed applications (Photos, Accounts, Auth, Cast) as per your needs:
|
||||
3. Build the needed applications (Photos, Accounts, Auth, Cast) as per your
|
||||
needs:
|
||||
|
||||
```shell
|
||||
# These commands are executed inside web directory
|
||||
# Build photos. Build output to be served is present at apps/photos/out
|
||||
@@ -141,9 +152,10 @@ relative to `server` directory
|
||||
```
|
||||
|
||||
4. Copy the output files to `/var/www/ente/apps` for easier management.
|
||||
``` shell
|
||||
|
||||
```shell
|
||||
mkdir -p /var/www/ente/apps
|
||||
|
||||
|
||||
# Photos
|
||||
sudo cp -r apps/photos/out /var/www/ente/apps/photos
|
||||
# Accounts
|
||||
@@ -154,8 +166,10 @@ relative to `server` directory
|
||||
sudo cp -r apps/cast/out /var/www/ente/apps/cast
|
||||
```
|
||||
|
||||
4. Set up file server using Caddy by editing `Caddyfile`, present at `/etc/caddy/Caddyfile`.
|
||||
``` groovy
|
||||
5. Set up file server using Caddy by editing `Caddyfile`, present at
|
||||
`/etc/caddy/Caddyfile`.
|
||||
|
||||
```groovy
|
||||
# Replace the ports with domain names if you have subdomains configured and need HTTPS
|
||||
:3000 {
|
||||
root * /var/www/ente/apps/out/photos
|
||||
@@ -188,8 +202,14 @@ relative to `server` directory
|
||||
}
|
||||
```
|
||||
|
||||
The web application for Ente Photos should be accessible at http://localhost:3000, check out the [default ports](/self-hosting/installation/env-var#ports) for more information.
|
||||
The web application for Ente Photos should be accessible at
|
||||
http://localhost:3000, check out the
|
||||
[default ports](/self-hosting/installation/env-var#ports) for more
|
||||
information.
|
||||
|
||||
::: tip
|
||||
Check out [post-installation steps](/self-hosting/installation/post-install/) for further usage.
|
||||
:::
|
||||
|
||||
Check out [post-installations steps](/self-hosting/installation/post-install/)
|
||||
for further usage.
|
||||
|
||||
:::
|
||||
|
||||
@@ -12,77 +12,96 @@ A list of steps that should be done after installing Ente are described below:
|
||||
The first user to be created will be treated as an admin user by default.
|
||||
|
||||
Once Ente is up and running, the Ente Photos web app will be accessible on
|
||||
`http://localhost:3000`. Open this URL in your browser and proceed with creating
|
||||
an account.
|
||||
`http://localhost:3000`.
|
||||
|
||||
Select **Don't have an account?** to create a new user.
|
||||
Select **Don't have an account?** to create a new user. Follow the prompts to
|
||||
sign up.
|
||||
|
||||

|
||||
<div style="display: flex; gap: 10px;">
|
||||
<img alt="Onboarding screen" src="/onboarding.png" style="width: 50%; height: auto;">
|
||||
<img alt="Sign up page" src="/sign-up.png" style="width: 50%; height: auto;">
|
||||
</div>
|
||||
|
||||
Follow the prompts to sign up.
|
||||
Enter the verification code to complete registration.
|
||||
|
||||

|
||||
|
||||
Enter a 6-digit verification code to complete registration.
|
||||
|
||||
This code can be found in the server logs, which should be shown in your terminal where you started the Docker Compose cluster.
|
||||
This code can be found in the server logs, which should be shown in your
|
||||
terminal where you started the Docker Compose cluster.
|
||||
|
||||
If not, access the server logs inside the folder where Compose file resides.
|
||||
|
||||
``` shell
|
||||
```shell
|
||||
sudo docker compose logs
|
||||
```
|
||||
|
||||
If running Museum without Docker, the code should be visible in the terminal (stdout).
|
||||
If running Museum without Docker, the code should be visible in the terminal
|
||||
(stdout).
|
||||
|
||||

|
||||
|
||||
## Step 2: Whitelist admins
|
||||
|
||||
1. Connect to `ente_db` (the database used for storing data
|
||||
related to Ente).
|
||||
``` shell
|
||||
# Change the DB name and DB user name if you use different values.
|
||||
# If using Docker
|
||||
docker exec -it <postgres-ente-container-name> psql -U pguser -d ente_db
|
||||
1. Connect to `ente_db` (the database used for storing data related to Ente).
|
||||
|
||||
```shell
|
||||
# Change the DB name and DB user name if you use different
|
||||
# values.
|
||||
|
||||
# If using Docker docker exec -it <postgres-ente-container-name>
|
||||
psql -U pguser -d ente_db
|
||||
|
||||
# Or when using psql directly
|
||||
psql -U pguser -d ente_db
|
||||
psql -U pguser -d ente_db
|
||||
```
|
||||
|
||||
2. Get the user ID of the first user by running the following PSQL command:
|
||||
``` sql
|
||||
2. Get the user ID of the first user by running the following PSQL command:
|
||||
|
||||
```sql
|
||||
SELECT * from users;
|
||||
```
|
||||
|
||||
3. Edit `internal.admins` or `internal.admin` (if you wish to whitelist only single user) in `museum.yaml`
|
||||
to add the user ID you wish to whitelist.
|
||||
3. Edit `internal.admins` or `internal.admin` (if you wish to whitelist only
|
||||
single user) in `museum.yaml` to add the user ID you wish to whitelist.
|
||||
|
||||
- For multiple admins:
|
||||
``` yaml
|
||||
|
||||
```yaml
|
||||
internal:
|
||||
admins:
|
||||
- <user_id>
|
||||
```
|
||||
|
||||
- For single admin:
|
||||
``` yaml
|
||||
|
||||
```yaml
|
||||
internal:
|
||||
admin: <user_id>
|
||||
```
|
||||
|
||||
4. Restart Museum by restarting the cluster
|
||||
4. Restart Museum by restarting the cluster
|
||||
|
||||
::: tip Restart your Compose clusters whenever you make changes
|
||||
|
||||
If you have edited the Compose file or configuration file (`museum.yaml`), make
|
||||
sure to recreate the cluster's containers.
|
||||
|
||||
You can do this by the following command:
|
||||
|
||||
```shell
|
||||
docker compose down && docker compose up -d
|
||||
```
|
||||
|
||||
::: tip
|
||||
Restart your Compose clusters whenever you make changes to Compose file or edit configuration file.
|
||||
:::
|
||||
|
||||
## Step 3: Configure application endpoints
|
||||
|
||||
You may wish to access some of the applications such as Auth, Albums, Cast via your instance's endpoints through the application instead of our production instances.
|
||||
You may wish to access some of the applications such as Auth, Albums, Cast via
|
||||
your instance's endpoints through the application instead of our production
|
||||
instances.
|
||||
|
||||
You can do so by editing the `apps` section in `museum.yaml` to use the base endpoints of the corresponding web applications.
|
||||
You can do so by editing the `apps` section in `museum.yaml` to use the base
|
||||
endpoints of the corresponding web applications.
|
||||
|
||||
``` yaml
|
||||
```yaml
|
||||
# Replace yourdomain.tld with actual domain
|
||||
apps:
|
||||
public-albums: https://albums.ente.yourdomain.tld
|
||||
@@ -92,21 +111,24 @@ apps:
|
||||
|
||||
## Step 4: Make it publicly accessible
|
||||
|
||||
You may wish to access Ente on public Internet. You can do so by configuring a reverse proxy
|
||||
with software such as Caddy, NGINX, Traefik.
|
||||
You may wish to access Ente on public Internet. You can do so by configuring a
|
||||
reverse proxy with software such as Caddy, NGINX, Traefik.
|
||||
|
||||
Check out our [documentation](/self-hosting/administration/reverse-proxy) for more information.
|
||||
Check out our [documentation](/self-hosting/administration/reverse-proxy) for
|
||||
more information.
|
||||
|
||||
If you do not wish to make it accessible via Internet, we recommend you to use
|
||||
[Tailscale](/self-hosting/guides/tailscale) for convenience. Alternately, you
|
||||
can use your IP address for accessing the application in your local network, though
|
||||
this poses challenges with respect to object storage.
|
||||
can use your IP address for accessing the application in your local network,
|
||||
though this poses challenges with respect to object storage.
|
||||
|
||||
## Step 5: Download mobile and desktop app
|
||||
|
||||
You can install Ente Photos by following the [installation section](/photos/faq/installing).
|
||||
You can install Ente Photos by following the
|
||||
[installation section](/photos/faq/installing).
|
||||
|
||||
You can also install Ente Auth (if you are planning to use Auth) by following the [installation section](/auth/faq/installing).
|
||||
You can also install Ente Auth (if you are planning to use Auth) by following
|
||||
the [installation section](/auth/faq/installing).
|
||||
|
||||
## Step 6: Configure apps to use your server
|
||||
|
||||
@@ -114,23 +136,18 @@ You can modify Ente mobile apps and CLI to connect to your server.
|
||||
|
||||
### Mobile
|
||||
|
||||
Tap the onboarding screen 7 times to modify developer settings.
|
||||
Tap the onboarding screen 7 times to modify developer settings. Enter your Ente
|
||||
server's endpoint.
|
||||
|
||||
<center>
|
||||
<div style="display: flex; gap: 10px;">
|
||||
<img src="/developer-settings.png" alt="Developer Settings" height="50%" width="50%" />
|
||||
</center>
|
||||
|
||||
<br>
|
||||
Enter your Ente server's endpoint.
|
||||
<br>
|
||||
|
||||
<center>
|
||||
<img src="/developer-settings-endpoint.png" alt="Developer Settings - Server Endpoint" height="50%" width="50%" />
|
||||
</center>
|
||||
</div>
|
||||
|
||||
### Desktop
|
||||
|
||||
Tap 7 times on the onboarding screen to configure the server endpoint to be used.
|
||||
Tap 7 times on the onboarding screen to configure the server endpoint to be
|
||||
used.
|
||||
|
||||
<div align="center">
|
||||
|
||||
@@ -141,10 +158,15 @@ apps](web-dev-settings.png){width=400px}
|
||||
|
||||
## Step 7: Configure Ente CLI
|
||||
|
||||
You can download Ente CLI from [here](https://github.com/ente-io/ente/releases?q=tag%3Acli)
|
||||
You can download Ente CLI from
|
||||
[here](https://github.com/ente-io/ente/releases?q=tag%3Acli)
|
||||
|
||||
Check our [documentation](/self-hosting/administration/cli) on how to use Ente CLI for managing self-hosted instances.
|
||||
Check our [documentation](/self-hosting/administration/cli) on how to use Ente
|
||||
CLI for managing self-hosted instances.
|
||||
|
||||
::: info For upgrading
|
||||
Check out our [upgrading documentation](/self-hosting/installation/upgrade) for various installation methods.
|
||||
:::
|
||||
|
||||
Check out our [upgrading documentation](/self-hosting/installation/upgrade) for
|
||||
various installation methods.
|
||||
|
||||
:::
|
||||
|
||||
@@ -10,8 +10,8 @@ machine in less than a minute.
|
||||
|
||||
## Requirements
|
||||
|
||||
Check out the [requirements](/self-hosting/installation/requirements) page to get
|
||||
started.
|
||||
Check out the [requirements](/self-hosting/installation/requirements) page to
|
||||
get started.
|
||||
|
||||
## Getting started
|
||||
|
||||
@@ -22,14 +22,21 @@ sh -c "$(curl -fsSL https://raw.githubusercontent.com/ente-io/ente/main/server/q
|
||||
```
|
||||
|
||||
The above `curl` command does the following:
|
||||
|
||||
1. Creates a directory `./my-ente` in working directory.
|
||||
2. Starts the containers required to run Ente upon prompting.
|
||||
|
||||
You should be able to access the web application at [http://localhost:3000](http://localhost:3000) or [http://machine-ip:3000](http://<machine-ip>:3000)
|
||||
You should be able to access the web application at
|
||||
[http://localhost:3000](http://localhost:3000) or
|
||||
[http://machine-ip:3000](http://<machine-ip>:3000)
|
||||
|
||||
The data accessed by Museum is stored in `./data` folder inside `my-ente` directory.
|
||||
It contains extra configuration files that is to be used (push notification credentials, etc.)
|
||||
The data accessed by Museum is stored in `./data` folder inside `my-ente`
|
||||
directory. It contains extra configuration files that is to be used (push
|
||||
notification credentials, etc.)
|
||||
|
||||
::: tip
|
||||
Check out [post-installations steps](/self-hosting/installation/post-install/) for further usage.
|
||||
:::
|
||||
|
||||
Check out [post-installation steps](/self-hosting/installation/post-install/)
|
||||
for further usage.
|
||||
|
||||
:::
|
||||
|
||||
@@ -5,31 +5,36 @@ description: Requirements for self-hosting Ente
|
||||
|
||||
# Requirements
|
||||
|
||||
Ensure your system meets these requirements and has the needed software installed for a smooth experience.
|
||||
Ensure your system meets these requirements and has the needed software
|
||||
installed for a smooth experience.
|
||||
|
||||
## Hardware
|
||||
|
||||
The server is capable of running on minimal resource requirements as a
|
||||
lightweight Go binary, since most of the intensive computational tasks are done on the client.
|
||||
It performs well on small cloud instances, old laptops, and even
|
||||
lightweight Go binary, since most of the intensive computational tasks are done
|
||||
on the client. It performs well on small cloud instances, old laptops, and even
|
||||
[low-end embedded devices](https://github.com/ente-io/ente/discussions/594).
|
||||
|
||||
- **Storage:** An Unix-compatible filesystem such as ZFS, EXT4, BTRFS, etc. if using
|
||||
PostgreSQL container as it requires a filesystem that supports user/group permissions.
|
||||
- **RAM:** A minimum of 1 GB of RAM is required for running the cluster (if using quickstart script).
|
||||
- **Storage:** An Unix-compatible filesystem such as ZFS, EXT4, BTRFS, etc. if
|
||||
using PostgreSQL container as it requires a filesystem that supports
|
||||
user/group permissions.
|
||||
- **RAM:** A minimum of 1 GB of RAM is required for running the cluster (if
|
||||
using quickstart script).
|
||||
- **CPU:** A minimum of 1 CPU core is required.
|
||||
|
||||
## Software
|
||||
|
||||
- **Operating System:** Any Linux or \*nix operating system, Ubuntu or Debian is recommended
|
||||
to have a good Docker experience. Non-Linux operating systems tend to provide poor
|
||||
experience with Docker and difficulty with troubleshooting and assistance.
|
||||
- **Operating System:** Any Linux or \*nix operating system, Ubuntu or Debian is
|
||||
recommended to have a good Docker experience. Non-Linux operating systems tend
|
||||
to provide poor experience with Docker and difficulty with troubleshooting and
|
||||
assistance.
|
||||
|
||||
- **Docker:** Required for running Ente's server, web application and dependent services
|
||||
(database and object storage). Ente also requires **Docker Compose plugin** to be installed.
|
||||
- **Docker:** Required for running Ente's server, web application and dependent
|
||||
services (database and object storage). Ente also requires **Docker Compose
|
||||
plugin** to be installed.
|
||||
|
||||
> [!NOTE]
|
||||
>
|
||||
>
|
||||
> Ente requires **Docker Compose version 2.30 or higher**.
|
||||
>
|
||||
> Furthermore, Ente uses the command `docker compose`, `docker-compose` is no
|
||||
|
||||
@@ -11,31 +11,33 @@ Upgrading Ente depends on the method of installation you have chosen.
|
||||
|
||||
::: tip For Docker users
|
||||
|
||||
You can free up some disk space by deleting older images that were used by obsolette containers.
|
||||
You can free up some disk space by deleting older images that were used by
|
||||
obsolette containers.
|
||||
|
||||
``` shell
|
||||
```shell
|
||||
docker image prune
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
Upgrade and restart Ente by pulling the latest images in the directory where the Compose file resides.
|
||||
Pull in the latest images in the directory where the Compose file resides.
|
||||
Restart the cluster to recreate containers with newer images.
|
||||
|
||||
The directory name is generally `my-ente`.
|
||||
Run the following command inside `my-ente` directory (default name used in
|
||||
quickstart):
|
||||
|
||||
Run this command inside `my-ente/`
|
||||
|
||||
``` shell
|
||||
```shell
|
||||
docker compose pull && docker compose up -d
|
||||
```
|
||||
|
||||
## Docker Compose
|
||||
|
||||
You can pull in the latest source code from Git and build a new cluster
|
||||
based on the updated source code.
|
||||
You can pull in the latest source code from Git and build a new cluster based on
|
||||
the updated source code.
|
||||
|
||||
1. Pull the latest changes from `main`.
|
||||
|
||||
``` shell
|
||||
```shell
|
||||
# Assuming you have cloned repository to ente
|
||||
cd ente
|
||||
# Pull changes
|
||||
@@ -43,7 +45,7 @@ based on the updated source code.
|
||||
```
|
||||
|
||||
2. Recreate the cluster.
|
||||
``` shell
|
||||
```shell
|
||||
cd server/config
|
||||
# Stop and remove containers if they are running
|
||||
docker compose down
|
||||
@@ -53,12 +55,12 @@ based on the updated source code.
|
||||
|
||||
## Manual Setup
|
||||
|
||||
You can pull in the latest source code from Git and build a new cluster
|
||||
based on the updated source code.
|
||||
You can pull in the latest source code from Git and build a new cluster based on
|
||||
the updated source code.
|
||||
|
||||
1. Pull the latest changes from `main`.
|
||||
|
||||
``` shell
|
||||
```shell
|
||||
# Assuming you have cloned repository to ente
|
||||
cd ente
|
||||
|
||||
@@ -70,5 +72,6 @@ based on the updated source code.
|
||||
git reset --hard main
|
||||
```
|
||||
|
||||
2. Follow the steps described in [manual setup](/self-hosting/installation/manual#step-3-configure-web-application)
|
||||
for Museum and web applications.
|
||||
2. Follow the steps described in
|
||||
[manual setup](/self-hosting/installation/manual#step-3-configure-web-application)
|
||||
for Museum and web applications.
|
||||
|
||||
@@ -6,11 +6,11 @@ description: Fixing Docker-related errors when trying to self-host Ente
|
||||
# Troubleshooting Docker-related errors
|
||||
|
||||
> [!TIP] Restart after changes
|
||||
>
|
||||
>
|
||||
> Remember to restart your cluster to ensure changes that you make in the
|
||||
> `compose.yaml` and `museum.yaml` get picked up.
|
||||
>
|
||||
> ``` shell
|
||||
>
|
||||
> ```shell
|
||||
> docker compose down
|
||||
> docker compose up
|
||||
> ```
|
||||
@@ -87,25 +87,25 @@ museum-1 | /etc/ente/cmd/museum/main.go:124 +0x44c
|
||||
museum-1 exited with code 2
|
||||
```
|
||||
|
||||
Then the issue is that the password you're using is not the password PostgreSQL is
|
||||
expecting.
|
||||
Then the issue is that the password you're using is not the password PostgreSQL
|
||||
is expecting.
|
||||
|
||||
There are 2 possibilities:
|
||||
|
||||
1. When you have created a cluster in `my-ente` directory on
|
||||
running `quickstart.sh` and later deleted it, only to create
|
||||
another cluster with same `my-ente` directory.
|
||||
|
||||
1. When you have created a cluster in `my-ente` directory on running
|
||||
`quickstart.sh` and later deleted it, only to create another cluster with
|
||||
same `my-ente` directory.
|
||||
|
||||
However, by deleting the directory, the Docker volumes are not deleted.
|
||||
|
||||
Thus the older volumes with previous cluster's credentials are used
|
||||
for new cluster and the error arises.
|
||||
Thus the older volumes with previous cluster's credentials are used for new
|
||||
cluster and the error arises.
|
||||
|
||||
Deletion of the stale Docker volume can solve this. **Be careful**, this will
|
||||
delete all data in those volumes (any thing you uploaded etc). Do this
|
||||
Deletion of the stale Docker volume can solve this. **Be careful**, this
|
||||
will delete all data in those volumes (any thing you uploaded etc). Do this
|
||||
if you are sure this is the exact problem.
|
||||
|
||||
```sh
|
||||
```shell
|
||||
docker volume ls
|
||||
```
|
||||
|
||||
@@ -122,30 +122,26 @@ another cluster with same `my-ente` directory.
|
||||
docker compose down --volumes
|
||||
```
|
||||
|
||||
If you're unsure about removing volumes, another alternative is to rename your
|
||||
`my-ente` folder. Docker uses the folder name to determine the volume name
|
||||
prefix, so giving it a different name will cause Docker to create a volume
|
||||
afresh for it.
|
||||
If you're unsure about removing volumes, another alternative is to rename
|
||||
your `my-ente` folder. Docker uses the folder name to determine the volume
|
||||
name prefix, so giving it a different name will cause Docker to create a
|
||||
volume afresh for it.
|
||||
|
||||
## MinIO provisioning error
|
||||
|
||||
If you have used our quickstart script for self-hosting Ente (new users will be
|
||||
unaffected) and are using the default MinIO container for object storage, you
|
||||
may run into issues while starting the cluster after pulling latest images with
|
||||
provisioning MinIO and creating buckets.
|
||||
|
||||
You may encounter similar logs while trying to start the cluster:
|
||||
|
||||
```
|
||||
my-ente-minio-1 -> | Waiting for minio...
|
||||
my-ente-minio-1 -> | Waiting for minio...
|
||||
my-ente-minio-1 -> | Waiting for minio...
|
||||
```
|
||||
|
||||
MinIO has deprecated the `mc config` command in favor of `mc alias set`
|
||||
resulting in failure in execution of the command for creating bucket using
|
||||
`post_start` hook.
|
||||
|
||||
You may encounter similar logs while trying to start the cluster if you are
|
||||
using the older command (provided by default in `quickstart.sh`):
|
||||
|
||||
```
|
||||
my-ente-minio-1 -> | Waiting for minio...
|
||||
my-ente-minio-1 -> | Waiting for minio...
|
||||
my-ente-minio-1 -> | Waiting for minio...
|
||||
```
|
||||
|
||||
This can be resolved by changing
|
||||
`mc config host h0 add http://minio:3200 $minio_user $minio_pass` to
|
||||
`mc alias set h0 http://minio:3200 $minio_user $minio_pass`
|
||||
|
||||
@@ -5,25 +5,30 @@ description: A quick hotfix for keyring errors while running Ente CLI.
|
||||
|
||||
# Ente CLI Secrets
|
||||
|
||||
Ente CLI makes use of system keyring for storing sensitive information like your passwords. And running the CLI straight out of the box might give you some errors related to keyrings in some case.
|
||||
Ente CLI makes use of system keyring for storing sensitive information like your
|
||||
passwords. And running the CLI straight out of the box might give you some
|
||||
errors related to keyrings in some case.
|
||||
|
||||
Follow the below steps to run Ente CLI and also avoid keyrings errors.
|
||||
|
||||
Run:
|
||||
|
||||
``` shell
|
||||
```shell
|
||||
# export the secrets path
|
||||
export ENTE_CLI_SECRETS_PATH=./<path-to-secrets.txt>
|
||||
|
||||
./ente-cli
|
||||
```
|
||||
|
||||
You can also add the above line to your shell's rc file, to prevent the need to export manually every time.
|
||||
You can also add the above line to your shell's rc file, to prevent the need to
|
||||
export manually every time.
|
||||
|
||||
Then one of the following:
|
||||
|
||||
1. If the file doesn't exist, Ente CLI will create it and fill it with a random 32 character encryption key.
|
||||
2. If you do create the file, please fill it with a cryptographically generated 32 byte string.
|
||||
1. If the file doesn't exist, Ente CLI will create it and fill it with a random
|
||||
32 character encryption key.
|
||||
2. If you do create the file, please fill it with a cryptographically generated
|
||||
32 byte string.
|
||||
|
||||
And you are good to go.
|
||||
|
||||
|
||||
@@ -8,14 +8,20 @@ description: Fixing upload errors when trying to self host Ente
|
||||
Here are some errors our community members frequently encountered with the
|
||||
context and potential fixes.
|
||||
|
||||
Fundamentally in most situations, the problem is because of minor mistakes or misconfiguration. Please make sure to reverse proxy Museum and MinIO API
|
||||
endpoint to a domain and check your S3 credentials and whole configuration file for any minor misconfigurations.
|
||||
Fundamentally in most situations, the problem is because of minor mistakes or
|
||||
misconfiguration. Please make sure to reverse proxy Museum and MinIO API
|
||||
endpoint to a domain and check your S3 credentials and whole configuration file
|
||||
for any minor misconfigurations.
|
||||
|
||||
It is also suggested that the user setups bucket CORS or global CORS on MinIO or any external S3 service provider they are connecting to. To setup bucket CORS, please [read this](/self-hosting/administration/object-storage#cors-cross-origin-resource-sharing).
|
||||
It is also suggested that the user setups bucket CORS or global CORS on MinIO or
|
||||
any external S3 service provider they are connecting to. To setup bucket CORS,
|
||||
please
|
||||
[read this](/self-hosting/administration/object-storage#cors-cross-origin-resource-sharing).
|
||||
|
||||
## 403 Forbidden
|
||||
|
||||
If museum is able to make a network connection to your S3 bucket but uploads are still failing, it could be a credentials or permissions issue.
|
||||
If museum is able to make a network connection to your S3 bucket but uploads are
|
||||
still failing, it could be a credentials or permissions issue.
|
||||
|
||||
A telltale sign of this is that in the museum logs you can see `403 Forbidden`
|
||||
errors about it not able to find the size of a file even though the
|
||||
@@ -29,8 +35,12 @@ This could be because
|
||||
headers configuration too.
|
||||
[Here is an example of a working configuration](https://github.com/ente-io/ente/discussions/1764#discussioncomment-9478204).
|
||||
|
||||
2. The credentials are not being picked up (you might be setting the correct credentials, but not in the place where museum reads them from).
|
||||
2. The credentials are not being picked up (you might be setting the correct
|
||||
credentials, but not in the place where museum reads them from).
|
||||
|
||||
## Mismatch in file size
|
||||
|
||||
The "Mismatch in file size" error mostly occurs in a situation where the client is re-uploading a file which is already in the bucket with a different file size. The reason for re-upload could be anything including network issue, sudden killing of app before the upload is complete and etc.
|
||||
The "Mismatch in file size" error mostly occurs in a situation where the client
|
||||
is re-uploading a file which is already in the bucket with a different file
|
||||
size. The reason for re-upload could be anything including network issue, sudden
|
||||
killing of app before the upload is complete and etc.
|
||||
|
||||
Reference in New Issue
Block a user