### Description - Change some environment variables implementation - Nginx configuration: ```nginx server { server_name beta.squidspirit.com; proxy_pass_request_headers on; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; location / { proxy_pass http://127.0.0.1:10013/; } location /api/ { proxy_pass http://127.0.0.1:10014/; } listen 443 ssl; # managed by Certbot ssl_certificate /etc/letsencrypt/live/beta.squidspirit.com/fullchain.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/beta.squidspirit.com/privkey.pem; # managed by Certbot include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot } server { if ($host = beta.squidspirit.com) { return 301 https://$host$request_uri; } # managed by Certbot server_name beta.squidspirit.com; listen 80; return 404; # managed by Certbot } ``` - Podman kube configuration: ```yaml apiVersion: v1 kind: Secret metadata: name: beta-blog-secret data: DATABASE_PASSWORD: {{BASE64_PASSWORD}} --- apiVersion: v1 kind: Pod metadata: name: beta-blog spec: containers: - name: postgres image: docker.io/library/postgres:17-alpine imagePullPolicy: always env: - name: POSTGRES_PASSWORD valueFrom: secretKeyRef: name: beta-blog-secret key: DATABASE_PASSWORD volumeMounts: - name: beta-blog-postgres mountPath: /var/lib/postgresql/data - name: backend image: registry.squidspirit.com/squid/beta-blog-backend:latest imagePullPolicy: always env: - name: DATABASE_PASSWORD valueFrom: secretKeyRef: name: beta-blog-secret key: DATABASE_PASSWORD volumeMounts: - name: beta-blog-localtime mountPath: /etc/localtime readonly: true ports: - hostPort: 10014 hostIP: 127.0.0.1 containerPort: 8080 - name: frontend image: registry.squidspirit.com/squid/beta-blog-frontend:latest imagePullPolicy: always env: - name: PUBLIC_API_BASE_URL value: https://beta.squidspirit.com/api/ volumeMounts: - name: beta-blog-localtime mountPath: /etc/localtime readonly: true ports: - hostPort: 10013 hostIP: 127.0.0.1 containerPort: 3000 volumes: - name: beta-blog-localtime hostPath: path: /etc/localtime - name: beta-blog-postgres persistentVolumeClaim: claimName: beta-blog-postgres ``` ### Package Changes _No response_ ### Screenshots _No response_ ### Reference Resolves #65 ### Checklist - [x] A milestone is set - [x] The related issuse has been linked to this branch Reviewed-on: #66 Co-authored-by: SquidSpirit <squid@squidspirit.com> Co-committed-by: SquidSpirit <squid@squidspirit.com>
Blog
Development
- Frontend: SvelteKit with Tailwind CSS
- Backend: Rust actix-web
Despite SvelteKit being a full-stack framework, I still decided to adopt a separate front-end and back-end architecture for this blog project. I believe that this separation makes the project cleaner, reduces coupling, and aligns with modern development practices. Furthermore, I wanted to practice developing a purely back-end API.
As for the more detailed development approach, I plan to use Clean Architecture for the overall structure. Of course, such a small project may not necessarily require such complex design patterns, but I want to give myself an opportunity to practice them.
These will allow me to become more proficient in these modern development practices and leave a lot of flexibility and room for adjustments in the future.
License
This project uses a combination of the MIT License and a custom license. Based on the MIT License, anyone is permitted to use the code. However, before deploying the code, they must first replace any information belonging to "me" or any content that could identify "me," such as logos, names, and "about me" sections.