---
title: "Een bestaande app uitrollen met erpc worker import"
description: "erpc worker import leest de map van een app en schrijft de erpc.toml ervan, zodat een Cargo-package of Linux-binary in elke taal uitrolt zonder codewijziging."
canonical: "https://erpc.global/nl/doc/erpc-cli/worker-import/"
locale: "nl"
---

# Een bestaande app uitrollen met erpc worker import

`erpc worker import` neemt een app die u al hebt over zoals die is. Het schrijft de `erpc.toml` van de app en wijzigt niets aan de code.

Deze pagina beschrijft ERPC CLI `v0.1.0-rc.4`, een pre-release.

## Importeren en uitrollen

De app kan een bot zijn die nu onder systemd of Docker draait, of een service in een andere taal. `import` leest de map van de app en schrijft de `erpc.toml` die de app beschrijft. Verder wordt er niets in de app geschreven, wordt er niets in uitgevoerd en wordt de code niet gewijzigd. erpc zet de app op zijn eigen lijst, net als `init`.

```bash
cd my-bot                                   # a Cargo package
erpc worker import                          # writes erpc.toml from what is there
erpc worker check                           # what it describes, and what is missing
erpc worker deploy                          # your VPS, or a new hourly one

cd my-go-service && make linux              # any other toolchain: build the Linux binary your way
erpc worker import --binary dist/service --port 8080 --health /healthz
erpc worker deploy
```

- **Een Cargo-package** wordt gebouwd met `cargo build --release`, net als een app die met `init` is gemaakt. De app krijgt de naam van het package, tenzij `--name` iets anders zegt, en `--bin` kiest de binary als het package er meerdere heeft. Een workspace-root wordt geweigerd: wijs `import` naar het package.
- **Een Linux-binary die waar dan ook is gebouwd, in elke taal,** wordt op dezelfde manier uitgerold met `--binary <PATH>`, en wordt meegeleverd zoals hij is. erpc leest de header en weigert een binary die een server niet kan draaien: een macOS- of Windows-binary, een script, een shared library, een afgekapt bestand of een andere architectuur dan `build.target`. De binary moet statisch zijn, of gelinkt tegen glibc met de loader op het gebruikelijke pad. Het is een bestand van de app: een link onder die naam die naar buiten de map van de app leidt, wordt geweigerd. Een uitrol stopt bij een onbruikbare binary voordat er een server wordt gekocht. Bouw de binary opnieuw vóór een uitrol die een wijziging moet meenemen.

## Wat import leest

| In de map | Wat `import` ermee doet |
| --- | --- |
| `.env.example` en vergelijkbare voorbeeldbestanden | Elke naam wordt een instelling als dat kan: een naam die niet bestaat uit hoofdletters, cijfers en `_` (zonder cijfer aan het begin), of een naam die erpc of de server zelf instelt (`ERPC_WORKER_…`, `LD_…`), wordt weggelaten. Een gewone naam gaat naar `[vars]` met de waarde uit het voorbeeld. Een naam die eruitziet als die van een secret, of waarvan de waarde toegangsgegevens bevat, wordt genoemd met het commando dat de waarde bewaart, en de waarde wordt niet gekopieerd |
| `.env` | Alleen de namen worden gelezen, behalve een poortnummer |
| `PORT`, `API_PORT`, `EXPOSE` van een Dockerfile | `run.port`, tenzij `--port` die opgeeft. `--health <PATH>` voegt de health check op die poort toe |
| `GRPC_ENDPOINT`, `SHREDS_ENDPOINT` en andere instellingen die een datalijn levert | Weggelaten uit `[vars]`: de optie van de lijn op `deploy` stelt ze in |
| `wallet.json`, `id.json`, `*keypair.json` | Genoemd, met `erpc worker key import <FILE> --wipe`, dat de sleutel bewaart waar erpc worker hem leest en het bestand wist |
| Een compose-bestand met Redis of PostgreSQL | `[services]`, zodat `deploy` ze op de server zet |
| `Dockerfile`, het compose-bestand zelf | Niet gebruikt om de app te draaien: erpc worker draait de binary zelf, onder een geharde systemd-unit |

`import --chain` noemt de chain waarvoor de app is, standaard `solana`.

## Hoe import een map leest

De map kan er een zijn die u een minuut geleden hebt gekloond, dus `import` leest hem zorgvuldig.

- **`erpc.toml` wordt nieuw gemaakt.** Als er al iets op dat pad staat, weigert `import`: het schrijft nooit over een bestand heen of via een link.
- **Het leest gewone bestanden binnen de map, tot 1 MiB per bestand.** Een link die naar buiten de map leidt, een pipe, een device, een groter bestand en een bestand dat geen UTF-8 is, worden niet gelezen, en dat wordt bij elk ervan gemeld.
- **Geen waarde die het voor een secret houdt, wordt gekopieerd.** Het zoekt toegangsgegevens op hun vorm, dus de controle is een vangnet, geen bewijs: een secret in een vorm die het niet kent, wordt gekopieerd zoals elke andere waarde. Het is aan u om `erpc.toml` te lezen voordat u het commit.
- **`erpc worker check` waarschuwt voor minder soorten dan `import` tegenhoudt.** Het zegt niets over een RPC-URL met een sleutel in het pad, of over een herstelzin, onder `[vars]`: bewaar die met `erpc worker secret put`.

## Wat uw app op de server aantreft

- **Instellingen komen binnen als omgevingsvariabelen**, `[vars]` en `[secrets]` allebei. Er is geen `.env` op de server, en een app die met een dotenv-library een `.env`-bestand leest, blijft werken.
- **De eigen map van de app is alleen-lezen.** Bestanden die de app schrijft, komen in de map die `ERPC_WORKER_STATE_DIR` noemt (ook de `HOME` van de app); een uitrol laat die map staan en `erpc worker backup` maakt er een back-up van.
- **Een tradingsleutel komt binnen via een pipe, niet in een bestand:** 64 bytes op de file descriptor die `ERPC_WORKER_KEY_FD` noemt, één keer, wanneer de app start, met de publieke sleutel in `ERPC_WORKER_PUBKEY`. In een app die een sleutelbestand leest, moet die ene leesactie worden aangepast; `src/wallet.rs` van het pumpfun-sjabloon laat zien hoe.
- **De app is één binary plus de bestanden die `run.files` opsomt.** Al het andere dat de app tijdens het draaien opent, moet in die lijst staan.

## Volgende stappen

- [Sleutels en secrets](https://erpc.global/nl/doc/erpc-cli/worker-secrets/): bewaar de instellingen die `import` heeft tegengehouden, en de tradingsleutel.
- [Firewall en WAF](https://erpc.global/nl/doc/erpc-cli/worker-firewall-and-waf/): kies wie de app mag bereiken.
- [De worker-handleiding](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/worker.md): elk bestand dat `import` leest, en de vormen van toegangsgegevens waarnaar het zoekt.
