> 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/da/konfiguration/overleaf-toolkit/s3.md).

# S3

{% hint style="info" %}
Denne dokumentation beskriver opsætningen af S3 i Server CE og Overleaf Pro. En [separat vejledning](/on-premises/da/vedligeholdelse/s3-migration.md) kan findes om migrering af eksisterende data til S3-kompatibel lagring.
{% endhint %}

## Hvornår du bør overveje at bruge S3 til datalagring

For instanser med færre end 1000 pladser anbefaler vi at bruge lokal disk-lagring med regelmæssige [konsistente sikkerhedskopier](https://docs.overleaf.com/on-premises/maintenance/data-and-backups#performing-a-consistent-backup).

For større instanser med mere end 1000 pladser, som når grænserne for deres lokale lagring (størrelse eller gennemløb), anbefaler vi at bruge en S3-kompatibel objektlagrings-backend frem for andre netværksbaserede lagringsløsninger som NFS.

## S3-kompatible objektlagringsmuligheder

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

* [AWS S3](https://aws.amazon.com/s3/), administreret, anbefaler vi at vælge AWS S3, når du kører Overleaf CE/Server Pro på AWS
* [MINIO](https://min.io/), selvhostet
* [Ceph](https://ceph.io/en/), selvhostet
* Andre hostingudbydere har også en eller anden form for administreret S3-kompatibel objektlagring; du vil måske bruge disse i stedet for at køre din egen, når du allerede kører Overleaf CE/Server Pro hos en sådan udbyder.

## Overvejelser om latenstid ved valg af en S3-kompatibel objektlagring

Latenstiden mellem Server CE/Server Pro-instansen og din S3-kompatible objektlagring er en stor faktor for den tid, det tager at gennemføre migreringen. Latenstiden påvirker også fil-upload-ydelsen i Server CE/Server Pro, og langsomme fildownloads kan også have stor indflydelse på PDF-kompileringstiderne. Vi anbefaler at minimere den geografiske afstand mellem din Server CE/Server Pro-instans og den S3-kompatible objektlagring. I et administreret miljø betyder det at oprette en bucket i samme region, og for en on-premise-løsning at køre de to på samme campus.

## S3-opsætning

Vi har brug for fire "buckets" og to begrænsede brugerkonti.

{% hint style="warning" %}
Buckets bør **ikke** være offentligt tilgængelige
{% 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>Brug</td><td>Tjeneste</td><td>Tidligere i <code>/var/lib/overleaf/data</code></td></tr><tr><td><code>overleaf-user-files</code></td><td>projektbrugerfiler</td><td>filestore</td><td><code>user_files</code></td></tr><tr><td><code>overleaf-template-files</code></td><td>skabelonfiler</td><td>filestore</td><td><code>template_files</code></td></tr><tr><td><code>overleaf-project-blobs</code></td><td>projekt-historik-blobber</td><td>historik og skrivebeskyttet filestore</td><td><code>history/overleaf-project-blobs</code></td></tr><tr><td><code>overleaf-chunks</code></td><td>historik-chunks</td><td>history</td><td><code>history/overleaf-chunks</code></td></tr></tbody></table>

Du vil måske have/behov for at vælge et andet navn; sørg for at bruge de brugerdefinerede buckets i alle kommandoerne.

Følgende vil bruge pladsholdere for de faktiske legitimationsoplysninger:

<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>Adgangsnøglen/brugernavnet for den begrænsede bruger af filestore-tjenesten.</td></tr><tr><td><code>OVERLEAF_FILESTORE_S3_SECRET_ACCESS_KEY</code></td><td>Hemmelig nøgle/adgangskode for den begrænsede bruger af filestore-tjenesten.</td></tr><tr><td><code>OVERLEAF_HISTORY_S3_ACCESS_KEY_ID</code></td><td>Adgangsnøglen/brugernavnet for den begrænsede bruger af historiktjenesten.</td></tr><tr><td><code>OVERLEAF_HISTORY_S3_SECRET_ACCESS_KEY</code></td><td>Hemmelig nøgle/adgangskode for den begrænsede bruger af historiktjenesten.</td></tr></tbody></table>

Server CE og Server Pro har kun brug for et lille sæt tilladelser på hver bucket:

* opret objekt
* hent objekt
* slet objekt
* list bucket

### Adgangspolitikker

Sådan kan en politik for filestore-brugeren se ud:

```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/*"
    }
  ]
}
```

Sådan kan en politik for historik-brugeren se ud:

```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/*"
    }
  ]
}
```

### Oversigt over variabler

#### Når du bruger AWS S3

```bash
# Aktivér S3-backend for filestore
OVERLEAF_FILESTORE_BACKEND=s3

# Buckets navn til projektfiler
OVERLEAF_FILESTORE_USER_FILES_BUCKET_NAME=overleaf-user-files

# Buckets navn til skabelonfiler
OVERLEAF_FILESTORE_TEMPLATE_FILES_BUCKET_NAME=overleaf-template-files

# Nøgle til filestore-brugeren
OVERLEAF_FILESTORE_S3_ACCESS_KEY_ID=...

# Hemmelighed til filestore-brugeren
OVERLEAF_FILESTORE_S3_SECRET_ACCESS_KEY=...

# Buckets region, som du valgte, da du oprettede bucketsene.
OVERLEAF_FILESTORE_S3_REGION=""

# Aktivér S3-backend for historik
OVERLEAF_HISTORY_BACKEND=s3

# Buckets navn til blobber for projekthistorik
OVERLEAF_HISTORY_PROJECT_BLOBS_BUCKET=overleaf-project-blobs

# Buckets navn til historik-chunks
OVERLEAF_HISTORY_CHUNKS_BUCKET=overleaf-chunks

# Nøgle til historik-brugeren
OVERLEAF_HISTORY_S3_ACCESS_KEY_ID=...

# Hemmelighed til historik-brugeren
OVERLEAF_HISTORY_S3_SECRET_ACCESS_KEY=...

# Buckets region, som du valgte, da du oprettede bucketsene.
OVERLEAF_HISTORY_S3_REGION=""
```

#### Når du bruger en selvhostet løsning

```bash
# Aktivér S3-backend for filestore
OVERLEAF_FILESTORE_BACKEND=s3

# Buckets navn til projektfiler
OVERLEAF_FILESTORE_USER_FILES_BUCKET_NAME=overleaf-user-files

# Buckets navn til skabelonfiler
OVERLEAF_FILESTORE_TEMPLATE_FILES_BUCKET_NAME=overleaf-template-files

# Nøgle til filestore-brugeren
OVERLEAF_FILESTORE_S3_ACCESS_KEY_ID=...

# Hemmelighed til filestore-brugeren
OVERLEAF_FILESTORE_S3_SECRET_ACCESS_KEY=...

# S3-udbyderens endpoint
OVERLEAF_FILESTORE_S3_ENDPOINT=http://10.10.10.10:9000

# Path-style-adressering af buckets. Du skal sandsynligvis sætte dette til "true".
OVERLEAF_FILESTORE_S3_PATH_STYLE="true"

# Buckets region. Du behøver sandsynligvis ikke at konfigurere dette.
OVERLEAF_FILESTORE_S3_REGION=""

# Aktivér S3-backend for historik
OVERLEAF_HISTORY_BACKEND=s3

# Buckets navn til blobber for projekthistorik
OVERLEAF_HISTORY_PROJECT_BLOBS_BUCKET=overleaf-project-blobs

# Buckets navn til historik-chunks
OVERLEAF_HISTORY_CHUNKS_BUCKET=overleaf-chunks

# Nøgle til historik-brugeren
OVERLEAF_HISTORY_S3_ACCESS_KEY_ID=...

# Hemmelighed til historik-brugeren
OVERLEAF_HISTORY_S3_SECRET_ACCESS_KEY=...

# S3-udbyderens endpoint
OVERLEAF_HISTORY_S3_ENDPOINT=http://10.10.10.10:9000

# Path-style-adressering af buckets. Du skal sandsynligvis sætte dette til "true".
OVERLEAF_HISTORY_S3_PATH_STYLE="true"

# Buckets region. Du behøver sandsynligvis ikke at konfigurere dette.
OVERLEAF_HISTORY_S3_REGION=""
```

### MINIO-opsætning

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

Følg venligst [den officielle dokumentation](https://min.io/docs/minio/linux/reference/minio-mc.html#quickstart) for at få en kopi af `mc`.

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

# Læg indholdet af politikkerne fra det forrige afsnit i
# de respektive json-filer policy-filestore.json og policy-history.json.

# Husk: Udskift bucket-navnene og legitimationsoplysningerne tilsvarende.

# filestore-buckets, bruger og politik
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

# historik-buckets, bruger og politik
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/da/konfiguration/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.
