4 Commits

Author SHA1 Message Date
0283c293ef An attempt to fix the PDF iframe not loading properly when the API domain is third-partyBasic printer CRUD
All checks were successful
Publish Docker Image / Publish Docker Image (push) Successful in 39s
2025-04-06 18:08:05 -04:00
8d75849c55 More reliable docker-compose.yml 2024-11-10 14:48:43 -05:00
58b44dddad Update Dockerfile
All checks were successful
Publish Docker Image / Publish Docker Image (push) Successful in 1m51s
2024-11-08 12:07:04 -05:00
c9de531389 Remove defaults, as they override the optional values
Some checks failed
Publish Docker Image / Publish Docker Image (push) Failing after 12s
2024-10-26 16:37:49 -04:00
172 changed files with 25 additions and 55 deletions

0
.dockerignore Normal file → Executable file
View File

0
.editorconfig Normal file → Executable file
View File

View File

@ -1,46 +0,0 @@
# These environment variables will be used by default if you do not create any
# yourself in .env. This file should be safe to check into your version control
# system. Any custom values should go in .env and .env should *not* be checked
# into version control.
# location of the test database for api service scenarios (defaults to ./.redwood/test.db if not set)
# TEST_DATABASE_URL=file:./.redwood/test.db
# disables Prisma CLI update notifier
PRISMA_HIDE_UPDATE_MESSAGE=true
# Option to override the current environment's default api-side log level
# See: https://redwoodjs.com/docs/logger for level options, defaults to "trace" otherwise.
# Most applications want "debug" or "info" during dev, "trace" when you have issues and "warn" in production.
# Ordered by how verbose they are: trace | debug | info | warn | error | silent
# LOG_LEVEL=debug
FIRST_NAME=firstname
LAST_NAME=lastname
DEFAULT_THEME=light
COUNTRY=US
STATE=New York
CITY=Manhattan
SMTP_HOST=smtp.example.com
SMTP_PORT=465
SMTP_SECURE=true
SMTP_USER=noreply@example.com
EMAIL_FROM=noreply@example.com
EMAIL_TO=email@example.com
SMTP_PASSWORD=password
DOMAIN=example.com
API_DOMAIN=api.example.com
# Must not end with "/"
ADDRESS_PROD=https://portfolio.example.com
ADDRESS_DEV=http://localhost:8910
API_ADDRESS_PROD=https://api-portfolio.example.com
API_ADDRESS_DEV=http://localhost:8911
MAX_HTTP_CONNECTIONS_PER_MINUTE=60
DATABASE_URL=postgresql://user:password@localhost:5432/rw_portfolio

0
.env.example Normal file → Executable file
View File

0
.gitea/workflows/ci.yml Normal file → Executable file
View File

0
.gitignore vendored Normal file → Executable file
View File

0
.redwood/README.md Normal file → Executable file
View File

0
.vscode/extensions.json vendored Normal file → Executable file
View File

0
.vscode/launch.json vendored Normal file → Executable file
View File

0
.vscode/settings.json vendored Normal file → Executable file
View File

0
.vscode/tasks.json vendored Normal file → Executable file
View File

0
.yarnrc.yml Normal file → Executable file
View File

3
Dockerfile Normal file → Executable file
View File

@ -29,7 +29,6 @@ RUN --mount=type=cache,target=/home/node/.yarn/berry/cache,uid=1000 \
COPY --chown=node:node redwood.toml .
COPY --chown=node:node graphql.config.js .
COPY --chown=node:node .env.defaults .env.defaults
# api build
# ---------
@ -115,7 +114,6 @@ RUN --mount=type=cache,target=/home/node/.yarn/berry/cache,uid=1000 \
COPY --chown=node:node redwood.toml .
COPY --chown=node:node graphql.config.js .
COPY --chown=node:node .env.defaults .env.defaults
COPY --chown=node:node --from=api_build /home/node/app/api/dist /home/node/app/api/dist
COPY --chown=node:node --from=api_build /home/node/app/api/db /home/node/app/api/db
@ -155,7 +153,6 @@ RUN --mount=type=cache,target=/home/node/.yarn/berry/cache,uid=1000 \
COPY --chown=node:node redwood.toml .
COPY --chown=node:node graphql.config.js .
COPY --chown=node:node .env.defaults .env.defaults
COPY --chown=node:node --from=web_build /home/node/app/web/dist /home/node/app/web/dist

13
README.md Normal file → Executable file
View File

@ -16,6 +16,7 @@ services:
portfolio:
container_name: portfolio
image: git.altaiar.dev/ahmed/portfolio:latest
restart: unless-stopped
environment:
- NODE_ENV=production
- API_PROXY_TARGET=http://localhost:8911
@ -44,7 +45,8 @@ services:
- 8910:8910 # Web
- 8911:8911 # API
depends_on:
- db
db:
condition: service_healthy
volumes:
- files:/home/node/app/api/files_prod
command: >
@ -54,14 +56,19 @@ services:
yarn rw prisma db seed &&
yarn rw serve"
db:
container_name: portfolio-db
image: postgres:16-bookworm
environment:
- POSTGRES_USER=redwood
- POSTGRES_PASSWORD=changeme
- POSTGRES_PASSWORD=changeme # Change to a more secure password
- POSTGRES_DB=portfolio
restart: unless-stopped
healthcheck:
test: ["CMD-SHELL", "pg_isready -d DATABASE_URL"] # Replace DATABASE_URL with the database URL from the portfolio container
interval: 10s
timeout: 5s
retries: 5
volumes:
- postgres:/var/lib/postgresql/data

0
api/db/migrations/20240810184713_user/migration.sql Normal file → Executable file
View File

0
api/db/migrations/20240819213158_social/migration.sql Normal file → Executable file
View File

View File

0
api/db/migrations/20240824001030_project/migration.sql Normal file → Executable file
View File

View File

View File

0
api/db/migrations/20240927031102_/migration.sql Normal file → Executable file
View File

0
api/db/migrations/20240929164343_/migration.sql Normal file → Executable file
View File

View File

0
api/db/migrations/20241005014130_/migration.sql Normal file → Executable file
View File

0
api/db/migrations/20241015183037_matrix/migration.sql Normal file → Executable file
View File

0
api/db/migrations/migration_lock.toml Normal file → Executable file
View File

0
api/db/schema.prisma Normal file → Executable file
View File

0
api/jest.config.js Normal file → Executable file
View File

0
api/package.json Normal file → Executable file
View File

0
api/quick-lint-js.config Normal file → Executable file
View File

0
api/src/directives/requireAuth/requireAuth.ts Normal file → Executable file
View File

0
api/src/directives/skipAuth/skipAuth.ts Normal file → Executable file
View File

0
api/src/functions/auth.ts Normal file → Executable file
View File

0
api/src/functions/graphql.ts Normal file → Executable file
View File

0
api/src/graphql/.keep Normal file → Executable file
View File

0
api/src/graphql/portrait.sdl.ts Normal file → Executable file
View File

0
api/src/graphql/projects.sdl.ts Normal file → Executable file
View File

0
api/src/graphql/resume.sdl.ts Normal file → Executable file
View File

0
api/src/graphql/scalars.sdl.ts Normal file → Executable file
View File

0
api/src/graphql/socials.sdl.ts Normal file → Executable file
View File

0
api/src/graphql/tags.sdl.ts Normal file → Executable file
View File

0
api/src/graphql/title.sdl.ts Normal file → Executable file
View File

0
api/src/lib/auth.ts Normal file → Executable file
View File

0
api/src/lib/cors.ts Normal file → Executable file
View File

0
api/src/lib/db.ts Normal file → Executable file
View File

0
api/src/lib/email.ts Normal file → Executable file
View File

0
api/src/lib/logger.ts Normal file → Executable file
View File

0
api/src/lib/tus.ts Normal file → Executable file
View File

0
api/src/server.ts Normal file → Executable file
View File

0
api/src/services/.keep Normal file → Executable file
View File

0
api/src/services/portrait/portrait.ts Normal file → Executable file
View File

0
api/src/services/projects/projects.ts Normal file → Executable file
View File

0
api/src/services/resume/resume.ts Normal file → Executable file
View File

0
api/src/services/socials/socials.ts Normal file → Executable file
View File

0
api/src/services/tags/tags.ts Normal file → Executable file
View File

0
api/src/services/title/title.ts Normal file → Executable file
View File

0
api/tsconfig.json Normal file → Executable file
View File

13
docker-compose.yml Normal file → Executable file
View File

@ -4,6 +4,7 @@ services:
portfolio:
container_name: portfolio
image: git.altaiar.dev/ahmed/portfolio:latest
restart: unless-stopped
environment:
- NODE_ENV=production
- API_PROXY_TARGET=http://localhost:8911
@ -32,7 +33,8 @@ services:
- 8910:8910 # Web
- 8911:8911 # API
depends_on:
- db
db:
condition: service_healthy
volumes:
- files:/home/node/app/api/files_prod
command: >
@ -42,14 +44,19 @@ services:
yarn rw prisma db seed &&
yarn rw serve"
db:
container_name: portfolio-db
image: postgres:16-bookworm
environment:
- POSTGRES_USER=redwood
- POSTGRES_PASSWORD=changeme
- POSTGRES_PASSWORD=changeme # Change to a more secure password
- POSTGRES_DB=portfolio
restart: unless-stopped
healthcheck:
test: ["CMD-SHELL", "pg_isready -d DATABASE_URL"] # Replace DATABASE_URL with the database URL from the portfolio container
interval: 10s
timeout: 5s
retries: 5
volumes:
- postgres:/var/lib/postgresql/data

0
graphql.config.js Normal file → Executable file
View File

0
jest.config.js Normal file → Executable file
View File

0
package.json Normal file → Executable file
View File

0
prettier.config.mjs Normal file → Executable file
View File

0
redwood.toml Normal file → Executable file
View File

0
scripts/.keep Normal file → Executable file
View File

0
scripts/seed.ts Normal file → Executable file
View File

0
scripts/tsconfig.json Normal file → Executable file
View File

0
web/config/postcss.config.js Normal file → Executable file
View File

0
web/config/tailwind.config.js Normal file → Executable file
View File

0
web/jest.config.js Normal file → Executable file
View File

0
web/package.json Normal file → Executable file
View File

0
web/public/README.md Normal file → Executable file
View File

0
web/public/favicon.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 757 B

After

Width:  |  Height:  |  Size: 757 B

0
web/public/no_portrait.webp Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 7.8 KiB

After

Width:  |  Height:  |  Size: 7.8 KiB

0
web/public/no_resume.pdf Normal file → Executable file
View File

0
web/public/robots.txt Normal file → Executable file
View File

0
web/quick-lint-js.config Normal file → Executable file
View File

0
web/src/App.tsx Normal file → Executable file
View File

0
web/src/Routes.tsx Normal file → Executable file
View File

0
web/src/auth.ts Normal file → Executable file
View File

0
web/src/components/.keep Normal file → Executable file
View File

0
web/src/components/Cell/CellEmpty/CellEmpty.tsx Normal file → Executable file
View File

0
web/src/components/Cell/CellFailure/CellFailure.tsx Normal file → Executable file
View File

0
web/src/components/Cell/CellLoading/CellLoading.tsx Normal file → Executable file
View File

0
web/src/components/ColorPicker/ColorPicker.tsx Normal file → Executable file
View File

View File

View File

0
web/src/components/DatePicker/DatePicker.tsx Normal file → Executable file
View File

0
web/src/components/FormTextList/FormTextList.tsx Normal file → Executable file
View File

5
web/src/components/PDF/PDF.tsx Normal file → Executable file
View File

@ -23,13 +23,18 @@ const PDF = ({ url, form = false }: PDFProps) => {
<iframe
src={url}
title="PDF"
content="application/pdf"
style={{
width: 'calc(100vw - 1rem)',
height: `calc(100vh - ${form ? '8.5rem' : '6rem'})`,
}}
allowFullScreen
className="rounded-xl"
onError={() => setError(true)}
onLoad={() => setError(false)}
sandbox="allow-same-origin allow-scripts allow-forms allow-popups"
referrerPolicy="no-referrer-when-downgrade"
loading="lazy"
/>
)
}

View File

View File

View File

View File

View File

0
web/src/components/Project/NewProject/NewProject.tsx Normal file → Executable file
View File

0
web/src/components/Project/Project/Project.tsx Normal file → Executable file
View File

0
web/src/components/Project/ProjectCell/ProjectCell.tsx Normal file → Executable file
View File

0
web/src/components/Project/ProjectForm/ProjectForm.tsx Normal file → Executable file
View File

0
web/src/components/Project/Projects/Projects.tsx Normal file → Executable file
View File

Some files were not shown because too many files have changed in this diff Show More