> For the complete documentation index, see [llms.txt](https://ayakaleaf-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://ayakaleaf-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 [separat veiledning](/on-premises/on-premises-no/vedlikehold/s3-migration.md) finnes om migrering av eksisterende data til S3-kompatibel lagring.
{% endhint %}

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

For instanser med færre enn 1000 plasser 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 instanser med mer enn 1000 plasser som når grensene for lokal lagring (størrelse eller gjennomstrømning), anbefaler vi å bruke en S3-kompatibel objektlagrings-backend 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, anbefaler vi å 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 kanskje bruke disse i stedet for å kjøre din egen når du allerede kjører Overleaf CE/Server Pro hos en slik leverandør.

## Hensyn til latens når du velger en S3-kompatibel objektlagring

Latensen mellom Server CE/Server Pro-instansen og din S3-kompatible objektlagring er en stor bidragsyter til tiden det tar å fullføre migreringen. Latensen påvirker også ytelsen for filopplasting i Server CE/Server Pro, og langsomme filnedlastinger kan også ha stor innvirkning på PDF-kompileringstider. Vi anbefaler å minimere den geografiske avstanden mellom Server CE/Server Pro-instansen og den S3-kompatible objektlagringen. I et administrert miljø vil dette bety å opprette en bucket i samme region, og for en lokal løsning å kjøre de to på samme campus.

## S3-oppsett

Vi trenger fire "buckets" og to begrensede brukerkontoer.

{% hint style="warning" %}
Bucketene 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>prosjekt-historikk-blobs</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>historikk</td><td><code>history/overleaf-chunks</code></td></tr></tbody></table>

Du vil kanskje/trenge å velge et annet navn, sørg for å bruke de egendefinerte bucketene i alle kommandoene.

Det følgende bruker plassholdere for faktiske legitimasjonsopplysninger:

<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 filestore-tjenesten.</td></tr><tr><td><code>OVERLEAF_FILESTORE_S3_SECRET_ACCESS_KEY</code></td><td>Den hemmelige nøkkelen/passordet til den begrensede brukeren for filestore-tjenesten.</td></tr><tr><td><code>OVERLEAF_HISTORY_S3_ACCESS_KEY_ID</code></td><td>Tilgangsnøkkelen/brukernavnet til den begrensede brukeren for historikk-tjenesten.</td></tr><tr><td><code>OVERLEAF_HISTORY_S3_SECRET_ACCESS_KEY</code></td><td>Den hemmelige nøkkelen/passordet til den begrensede brukeren for historikk-tjenesten.</td></tr></tbody></table>

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

* opprett objekt
* hent objekt
* slett objekt
* list opp bucket

### Tilgangspolicyer

Slik kan en policy for filestore-brukeren 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 historikk-brukeren 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 filestore
OVERLEAF_FILESTORE_BACKEND=s3

# Bucketnavn for prosjektfiler
OVERLEAF_FILESTORE_USER_FILES_BUCKET_NAME=overleaf-user-files

# Bucketnavn for malfiler
OVERLEAF_FILESTORE_TEMPLATE_FILES_BUCKET_NAME=overleaf-template-files

# Nøkkel for filestore-bruker
OVERLEAF_FILESTORE_S3_ACCESS_KEY_ID=...

# Hemmelighet for filestore-bruker
OVERLEAF_FILESTORE_S3_SECRET_ACCESS_KEY=...

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

# Aktiver S3-backend for historikk
OVERLEAF_HISTORY_BACKEND=s3

# Bucketnavn for prosjekt-historikk-blobs
OVERLEAF_HISTORY_PROJECT_BLOBS_BUCKET=overleaf-project-blobs

# Bucketnavn for historikk-chunks
OVERLEAF_HISTORY_CHUNKS_BUCKET=overleaf-chunks

# Nøkkel for historikk-bruker
OVERLEAF_HISTORY_S3_ACCESS_KEY_ID=...

# Hemmelighet for historikk-bruker
OVERLEAF_HISTORY_S3_SECRET_ACCESS_KEY=...

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

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

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

# Bucketnavn for prosjektfiler
OVERLEAF_FILESTORE_USER_FILES_BUCKET_NAME=overleaf-user-files

# Bucketnavn for malfiler
OVERLEAF_FILESTORE_TEMPLATE_FILES_BUCKET_NAME=overleaf-template-files

# Nøkkel for filestore-bruker
OVERLEAF_FILESTORE_S3_ACCESS_KEY_ID=...

# Hemmelighet for filestore-bruker
OVERLEAF_FILESTORE_S3_SECRET_ACCESS_KEY=...

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

# Bucket-adressering med path-style. 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

# Bucketnavn for prosjekt-historikk-blobs
OVERLEAF_HISTORY_PROJECT_BLOBS_BUCKET=overleaf-project-blobs

# Bucketnavn for historikk-chunks
OVERLEAF_HISTORY_CHUNKS_BUCKET=overleaf-chunks

# Nøkkel for historikk-bruker
OVERLEAF_HISTORY_S3_ACCESS_KEY_ID=...

# Hemmelighet for historikk-bruker
OVERLEAF_HISTORY_S3_SECRET_ACCESS_KEY=...

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

# Bucket-adressering med path-style. 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 rot-legitimasjonen til MINIO-instansen.
{% endhint %}

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

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

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

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

# filestore-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

# historikk-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://ayakaleaf-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.
