.
This commit is contained in:
parent
56410d43e3
commit
5fc3088b73
7
.env-production
Normal file
7
.env-production
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
MYSQL_ROOT_PASSWORD=uZm#bch6pPs8
|
||||||
|
MYSQL_DATABASE=uecko
|
||||||
|
MYSQL_USER=uecko
|
||||||
|
MYSQL_USER_PASSWORD=u8Ax5Nw3%sjd
|
||||||
|
|
||||||
|
PMA_USER=uecko
|
||||||
|
PMA_PASSWORD=u8Ax5Nw3%sjd
|
||||||
17
Caddyfile
Normal file
17
Caddyfile
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
presupuestos.uecko.com {
|
||||||
|
# Protección con Basic Auth para PhpMyAdmin
|
||||||
|
route /phpmyadmin/* {
|
||||||
|
basicauth {
|
||||||
|
usuario_secreto contraseña_segura
|
||||||
|
}
|
||||||
|
reverse_proxy phpmyadmin:80
|
||||||
|
}
|
||||||
|
|
||||||
|
reverse_proxy /api/* api:3000 # Redirige el tráfico de la API a tu contenedor de API
|
||||||
|
reverse_proxy /* client:80 # Redirige todo lo demás a tu aplicación React
|
||||||
|
encode gzip # Comprime las respuestas con gzip
|
||||||
|
}
|
||||||
|
|
||||||
|
www.presupuestos.uecko.com {
|
||||||
|
redir https://presupuestos.uecko.com{uri} # Redirige www a la versión sin www
|
||||||
|
}
|
||||||
10
client/Dockerfile
Normal file
10
client/Dockerfile
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
# BUILD
|
||||||
|
FROM node:lts-iron AS builder
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
COPY package.json yarn.lock ./
|
||||||
|
RUN yarn install
|
||||||
|
|
||||||
|
COPY . .
|
||||||
|
RUN yarn build
|
||||||
@ -5,53 +5,74 @@ services:
|
|||||||
image: mariadb:latest
|
image: mariadb:latest
|
||||||
container_name: mariadb
|
container_name: mariadb
|
||||||
environment:
|
environment:
|
||||||
MYSQL_ROOT_PASSWORD: uZm#bch6pPs8
|
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
|
||||||
MYSQL_DATABASE: uecko
|
MYSQL_DATABASE: ${MYSQL_DATABASE}
|
||||||
MYSQL_USER: uecko
|
MYSQL_USER: ${MYSQL_USER}
|
||||||
MYSQL_PASSWORD: u8Ax5Nw3%sjd
|
MYSQL_PASSWORD: ${MYSQL_USER_PASSWORD}
|
||||||
volumes:
|
volumes:
|
||||||
- mariadb_data:/var/lib/mysql
|
- mariadb_data:/var/lib/mysql
|
||||||
networks:
|
networks:
|
||||||
- bridge
|
- presupuestos-uecko-app-network
|
||||||
|
|
||||||
phpmyadmin:
|
phpmyadmin:
|
||||||
image: phpmyadmin/phpmyadmin
|
image: phpmyadmin/phpmyadmin
|
||||||
container_name: phpmyadmin
|
container_name: phpmyadmin
|
||||||
environment:
|
environment:
|
||||||
PMA_HOST: mariadb
|
PMA_HOST: mariadb
|
||||||
PMA_USER: uecko
|
PMA_USER: ${MYSQL_USER}
|
||||||
PMA_PASSWORD: u8Ax5Nw3%sjd
|
PMA_PASSWORD: ${MYSQL_USER_PASSWORD}
|
||||||
ports:
|
|
||||||
- "8080:80"
|
|
||||||
networks:
|
networks:
|
||||||
- bridge
|
- presupuestos-uecko-app-network
|
||||||
|
|
||||||
nginx:
|
caddy:
|
||||||
image: nginx:latest
|
image: caddy:latest
|
||||||
container_name: nginx
|
container_name: caddy
|
||||||
volumes:
|
|
||||||
- nginx_conf:/etc/nginx
|
|
||||||
- nginx_html:/usr/share/nginx/html
|
|
||||||
ports:
|
ports:
|
||||||
- "80:80"
|
- "80:80"
|
||||||
- "443:443"
|
- "443:443"
|
||||||
networks:
|
|
||||||
- bridge
|
|
||||||
|
|
||||||
nodejs:
|
|
||||||
image: node:lts-iron
|
|
||||||
container_name: nodejs
|
|
||||||
ports:
|
|
||||||
- "3000:3000"
|
|
||||||
volumes:
|
volumes:
|
||||||
- ./app:/usr/src/app
|
- caddy_etc:/etc/caddy/
|
||||||
working_dir: /usr/src/app
|
- caddy_html:/html
|
||||||
|
- caddy_data:/data
|
||||||
|
- caddy_config:/config
|
||||||
|
networks:
|
||||||
|
- presupuestos-uecko-app-network
|
||||||
|
depends_on:
|
||||||
|
- backend
|
||||||
|
- frontend
|
||||||
|
|
||||||
|
frontend:
|
||||||
|
build: ./client
|
||||||
|
networks:
|
||||||
|
- presupuestos-uecko-app-network
|
||||||
|
|
||||||
|
backend:
|
||||||
|
build: ./server
|
||||||
|
environment:
|
||||||
|
MYSQL_HOST: mysql
|
||||||
|
MYSQL_USER: root
|
||||||
|
MYSQL_PASSWORD: yourpassword
|
||||||
|
MYSQL_DB: yourdatabase
|
||||||
|
DATABASE_URL: mysql://user:user_password@db:3306/my_database
|
||||||
|
networks:
|
||||||
|
- presupuestos-uecko-app-network
|
||||||
|
depends_on:
|
||||||
|
- mariadb
|
||||||
|
|
||||||
|
api:
|
||||||
|
build:
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
context: "./server"
|
||||||
|
volumes:
|
||||||
|
- /api/node_modules
|
||||||
|
- ./server:/api
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
mariadb_data:
|
mariadb_data:
|
||||||
nginx_html:
|
caddy_etc:
|
||||||
nginx_conf:
|
caddy_data:
|
||||||
app:
|
caddy_html:
|
||||||
|
caddy_config:
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
bridge:
|
presupuestos-uecko-app-network:
|
||||||
|
|||||||
@ -1,14 +1,35 @@
|
|||||||
FROM node:20 as builder
|
# BUILD
|
||||||
|
FROM node:lts-iron AS builder
|
||||||
RUN corepack enable && corepack prepare pnpm@latest --activate
|
|
||||||
ENV PNPM_HOME=/usr/local/bin
|
|
||||||
|
|
||||||
# Establecer el directorio de trabajo
|
# Establecer el directorio de trabajo
|
||||||
WORKDIR /api
|
WORKDIR /api
|
||||||
|
|
||||||
COPY ./server/package.json pnpm-lock.yaml ./
|
COPY package.json yarn.lock ./
|
||||||
|
RUN yarn install --production=false
|
||||||
|
|
||||||
# Copiar el código de la aplicación
|
# Copiar el código de la aplicación
|
||||||
COPY . .
|
COPY . .
|
||||||
RUN pnpm install
|
|
||||||
RUN pnpm build
|
#ENV MYSQL_HOST=mysql
|
||||||
|
#ENV MYSQL_USER=root
|
||||||
|
#ENV MYSQL_PASSWORD=yourpassword
|
||||||
|
#ENV MYSQL_DB=yourdatabase
|
||||||
|
|
||||||
|
RUN yarn run build
|
||||||
|
|
||||||
|
# RUN
|
||||||
|
|
||||||
|
FROM node:lts-iron AS prod
|
||||||
|
|
||||||
|
WORKDIR /api
|
||||||
|
|
||||||
|
COPY package.json yarn.lock ./
|
||||||
|
RUN yarn install --production
|
||||||
|
|
||||||
|
COPY --from=builder /dist ./dist
|
||||||
|
|
||||||
|
# Exponer el puerto que la API usa
|
||||||
|
EXPOSE 3000
|
||||||
|
|
||||||
|
# Comando para correr la aplicación
|
||||||
|
CMD ["node", "dist/server/index.js"]
|
||||||
@ -17,8 +17,8 @@ module.exports = {
|
|||||||
|
|
||||||
server: {
|
server: {
|
||||||
hostname: process.env.HOSTNAME || "127.0.0.1",
|
hostname: process.env.HOSTNAME || "127.0.0.1",
|
||||||
port: process.env.PORT || 17777,
|
port: process.env.PORT || 3000,
|
||||||
public_url: "https://...",
|
public_url: "https://presupuestos.uecko.com",
|
||||||
},
|
},
|
||||||
|
|
||||||
uploads: {
|
uploads: {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user