> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/on-premises/on-premises-no/konfigurasjon/overleaf-toolkit/s3.md).

# S3

{% hint style="info" %}
Dette dokumentet dekker oppsettet av S3 i Server CE og Overleaf Pro. En [egen veiledning](/on-premises/on-premises-no/vedlikehold/s3-migration.md) finnes for migrering av eksisterende data til S3-kompatibel lagring.
{% endhint %}

## Når du bør vurdere å bruke S3 til datalagring

For installasjoner med færre enn 1000 seter anbefaler vi å bruke lokal disklagring med regelmessige [konsistente sikkerhetskopier](https://docs.overleaf.com/on-premises/maintenance/data-and-backups#performing-a-consistent-backup).

For større installasjoner med mer enn 1000 seter som når grensene for lokal lagring (størrelse eller gjennomstrømning), anbefaler vi å bruke et S3-kompatibelt objektlagringssystem fremfor andre nettverksbaserte lagringsløsninger som NFS.

## S3-kompatible objektlagringsalternativer

Her er de mest populære alternativene for S3-kompatibel objektlagring:

* [AWS S3](https://aws.amazon.com/s3/), administrert, vi anbefaler å velge AWS S3 når du kjører Overleaf CE/Server Pro på AWS
* [MINIO](https://min.io/), selvhostet
* [Ceph](https://ceph.io/en/), selvhostet
* Andre hostingleverandører har også en eller annen form for administrert S3-kompatibel objektlagring, og du kan ønske å bruke disse i stedet for å drifte din egen når du allerede kjører Overleaf CE/Server Pro hos en slik leverandør.

## Latenshensyn når du velger et S3-kompatibelt objektlager

Latensen mellom Server CE-/Server Pro-instansen og det S3-kompatible objektlageret ditt er en stor faktor for tiden det tar å fullføre migreringen. Latensen påvirker også filopplastingsytelsen i Server CE/Server Pro, og langsomme fildownloads kan også ha stor innvirkning på hvor lang tid PDF-kompilering tar. Vi anbefaler å minimere den geografiske avstanden mellom Server CE-/Server Pro-instansen og det S3-kompatible objektlageret. I et administrert miljø vil dette bety å opprette en bucket i samme region, og for en on-premise-løsning å kjøre de to på samme campus.

## S3-oppsett

Vi trenger fire "buckets" og to begrensede brukerkontoer.

{% hint style="warning" %}
Buckets bør **ikke** være offentlig tilgjengelige
{% endhint %}

<table data-header-hidden><thead><tr><th width="279"></th><th width="152"></th><th width="97"></th><th></th></tr></thead><tbody><tr><td>Bucket</td><td>Bruk</td><td>Tjeneste</td><td>Tidligere i <code>/var/lib/overleaf/data</code></td></tr><tr><td><code>overleaf-user-files</code></td><td>prosjektbrukerfiler</td><td>filestore</td><td><code>user_files</code></td></tr><tr><td><code>overleaf-template-files</code></td><td>malfiler</td><td>filestore</td><td><code>template_files</code></td></tr><tr><td><code>overleaf-project-blobs</code></td><td>blober for prosjekthistorikk</td><td>historikk og skrivebeskyttet filarkiv</td><td><code>history/overleaf-project-blobs</code></td></tr><tr><td><code>overleaf-chunks</code></td><td>historikk-chunks</td><td>history</td><td><code>history/overleaf-chunks</code></td></tr></tbody></table>

Du kan ønske/trenge å velge et annet navn, sørg for å bruke de tilpassede bucketene i alle kommandoene.

Følgende vil bruke plassholdere for faktiske tilgangsopplysninger:

<table><thead><tr><th width="431">Miljøvariabel</th><th>Beskrivelse</th></tr></thead><tbody><tr><td><code>OVERLEAF_FILESTORE_S3_ACCESS_KEY_ID</code></td><td>Tilgangsnøkkelen/brukernavnet til den begrensede brukeren for filarkivtjenesten.</td></tr><tr><td><code>OVERLEAF_FILESTORE_S3_SECRET_ACCESS_KEY</code></td><td>Den hemmelige nøkkelen/passordet til den begrensede brukeren for filarkivtjenesten.</td></tr><tr><td><code>OVERLEAF_HISTORY_S3_ACCESS_KEY_ID</code></td><td>Tilgangsnøkkelen/brukernavnet til den begrensede brukeren for historikktjenesten.</td></tr><tr><td><code>OVERLEAF_HISTORY_S3_SECRET_ACCESS_KEY</code></td><td>Den hemmelige nøkkelen/passordet til den begrensede brukeren for historikktjenesten.</td></tr></tbody></table>

Server CE og Server Pro trenger bare et lite sett med rettigheter på hver bucket:

* opprette objekt
* hente objekt
* slette objekt
* liste bucket

### Tilgangspolicyer

Slik kan en policy for filarkivbrukeren se ut:

```json
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:ListBucket"
      ],
      "Resource": "arn:aws:s3:::overleaf-user-files"
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:PutObject",
        "s3:GetObject",
        "s3:DeleteObject"
      ],
      "Resource": "arn:aws:s3:::overleaf-user-files/*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
      ],
      "Resource": "arn:aws:s3:::overleaf-project-blobs/*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:ListBucket"
      ],
      "Resource": "arn:aws:s3:::overleaf-template-files"
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:PutObject",
        "s3:GetObject",
        "s3:DeleteObject"
      ],
      "Resource": "arn:aws:s3:::overleaf-template-files/*"
    }
  ]
}
```

Slik kan en policy for historiebrukeren se ut:

```json
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:ListBucket"
      ],
      "Resource": "arn:aws:s3:::overleaf-project-blobs"
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:PutObject",
        "s3:GetObject",
        "s3:DeleteObject"
      ],
      "Resource": "arn:aws:s3:::overleaf-project-blobs/*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:ListBucket"
      ],
      "Resource": "arn:aws:s3:::overleaf-chunks"
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:PutObject",
        "s3:GetObject",
        "s3:DeleteObject"
      ],
      "Resource": "arn:aws:s3:::overleaf-chunks/*"
    }
  ]
}
```

### Oversikt over variabler

#### Når du bruker AWS S3

```bash
# Aktiver S3-backend for filarkivet
OVERLEAF_FILESTORE_BACKEND=s3

# Bucket-navn for prosjektfiler
OVERLEAF_FILESTORE_USER_FILES_BUCKET_NAME=overleaf-user-files

# Bucket-navn for malfiler
OVERLEAF_FILESTORE_TEMPLATE_FILES_BUCKET_NAME=overleaf-template-files

# Nøkkel for filarkivbruker
OVERLEAF_FILESTORE_S3_ACCESS_KEY_ID=...

# Hemmelig for filarkivbruker
OVERLEAF_FILESTORE_S3_SECRET_ACCESS_KEY=...

# Bucket-regionen du valgte da bucketene ble opprettet.
OVERLEAF_FILESTORE_S3_REGION=""

# Aktiver S3-backend for historikk
OVERLEAF_HISTORY_BACKEND=s3

# Bucket-navn for blober i prosjekthistorikken
OVERLEAF_HISTORY_PROJECT_BLOBS_BUCKET=overleaf-project-blobs

# Bucket-navn for historikk-chunks
OVERLEAF_HISTORY_CHUNKS_BUCKET=overleaf-chunks

# Nøkkel for historiebruker
OVERLEAF_HISTORY_S3_ACCESS_KEY_ID=...

# Hemmelig for historiebruker
OVERLEAF_HISTORY_S3_SECRET_ACCESS_KEY=...

# Bucket-regionen du valgte da bucketene ble opprettet.
OVERLEAF_HISTORY_S3_REGION=""
```

#### Når du bruker et selvhostet alternativ

```bash
# Aktiver S3-backend for filarkivet
OVERLEAF_FILESTORE_BACKEND=s3

# Bucket-navn for prosjektfiler
OVERLEAF_FILESTORE_USER_FILES_BUCKET_NAME=overleaf-user-files

# Bucket-navn for malfiler
OVERLEAF_FILESTORE_TEMPLATE_FILES_BUCKET_NAME=overleaf-template-files

# Nøkkel for filarkivbruker
OVERLEAF_FILESTORE_S3_ACCESS_KEY_ID=...

# Hemmelig for filarkivbruker
OVERLEAF_FILESTORE_S3_SECRET_ACCESS_KEY=...

# S3-leverandørens endepunkt
OVERLEAF_FILESTORE_S3_ENDPOINT=http://10.10.10.10:9000

# Path-style-adressering av buckets. Mest sannsynlig må du sette dette til "true".
OVERLEAF_FILESTORE_S3_PATH_STYLE="true"

# Bucket-region. Mest sannsynlig trenger du ikke å konfigurere dette.
OVERLEAF_FILESTORE_S3_REGION=""

# Aktiver S3-backend for historikk
OVERLEAF_HISTORY_BACKEND=s3

# Bucket-navn for blober i prosjekthistorikken
OVERLEAF_HISTORY_PROJECT_BLOBS_BUCKET=overleaf-project-blobs

# Bucket-navn for historikk-chunks
OVERLEAF_HISTORY_CHUNKS_BUCKET=overleaf-chunks

# Nøkkel for historiebruker
OVERLEAF_HISTORY_S3_ACCESS_KEY_ID=...

# Hemmelig for historiebruker
OVERLEAF_HISTORY_S3_SECRET_ACCESS_KEY=...

# S3-leverandørens endepunkt
OVERLEAF_HISTORY_S3_ENDPOINT=http://10.10.10.10:9000

# Path-style-adressering av buckets. Mest sannsynlig må du sette dette til "true".
OVERLEAF_HISTORY_S3_PATH_STYLE="true"

# Bucket-region. Mest sannsynlig trenger du ikke å konfigurere dette.
OVERLEAF_HISTORY_S3_REGION=""
```

### MINIO-oppsett

{% hint style="info" %}
`MINIO_ROOT_USER` og `MINIO_ROOT_PASSWORD` er rotlegitimasjonen til MINIO-instansen.
{% endhint %}

Vennligst følg den [offisielle dokumentasjonen](https://min.io/docs/minio/linux/reference/minio-mc.html#quickstart) for å skaffe en kopi av `mc`.

```bash
mc alias set s3 http://10.10.10.10:9000 MINIO_ROOT_USER MINIO_ROOT_PASSWORD

# Legg inn innholdet fra policyene i forrige seksjon i
# den respektive JSON-filen policy-filestore.json og policy-history.json.

# Påminnelse: Erstatt bucket-navnene og tilgangsopplysningene tilsvarende.

# filarkiv-buckets, bruker og policy
mc mb --ignore-existing s3/overleaf-user-files
mc mb --ignore-existing s3/overleaf-template-files
mc admin user add s3 \
  OVERLEAF_FILESTORE_S3_ACCESS_KEY_ID \
  OVERLEAF_FILESTORE_S3_SECRET_ACCESS_KEY
mc admin policy create s3 overleaf-filestore policy-filestore.json
mc admin policy attach s3 overleaf-filestore \
  --user=OVERLEAF_FILESTORE_S3_ACCESS_KEY_ID

# historie-buckets, bruker og policy
mc mb --ignore-existing s3/overleaf-project-blobs
mc mb --ignore-existing s3/overleaf-chunks
mc admin user add s3 \
  OVERLEAF_HISTORY_S3_ACCESS_KEY_ID \
  OVERLEAF_HISTORY_S3_SECRET_ACCESS_KEY
mc admin policy create s3 overleaf-history policy-history.json
mc admin policy attach s3 overleaf-history \
  --user=OVERLEAF_HISTORY_S3_ACCESS_KEY_ID
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/on-premises/on-premises-no/konfigurasjon/overleaf-toolkit/s3.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
