---
title: "Arquitectura"
description: "Cómo está armada la imagen y desarrollo sin Docker"
type: "docs"
category: "doc"
tags: []
authors: [Anonymous]
date: "2026-08-27"
last_update: "2026-08-27"
time_minutes: 1
draft: false
unlisted: false
url: "https://core.libredte.cl/docs/docker-api/arquitectura"
---

# Arquitectura

La imagen se construye en 2 etapas:

1. Una etapa con `composer:2` que corre `composer install` (sin
   dev-dependencies) para generar `vendor/`.
2. La etapa final, sobre `dunglas/frankenphp`, que instala las
   extensiones de PHP que hacen falta (`gd`, `intl`, `soap`) y copia
   el código junto al `vendor/` generado en la etapa anterior.

FrankenPHP ya trae un Caddyfile por defecto que sirve el directorio
`public/` (coincide con el de este proyecto) y escucha en la
dirección que indique `SERVER_NAME`. No se necesita ningún Caddyfile
propio: el puerto interno queda fijo en `SERVER_NAME=:80`.

## Desarrollo sin Docker

Para modificar el código sin construir la imagen:

```shell
git clone git@github.com:LibreDTE/libredte-lib-core-api.git
cd libredte-lib-core-api
composer install
cp .env-dist .env
php -S localhost:8080 -t public
```



---
Last updated on 27/08/2026

