Browse Source

Prepare for production

Lee Morgan 2 tuần trước cách đây
mục cha
commit
9c90fe3a98
5 tập tin đã thay đổi với 79 bổ sung và 13 xóa
  1. 25 0
      deploy/leemorgan-dev.service
  2. 42 0
      deploy/nginx.conf
  3. 5 5
      package-lock.json
  4. 2 1
      package.json
  5. 5 7
      vite.config.js

+ 25 - 0
deploy/leemorgan-dev.service

@@ -0,0 +1,25 @@
+[Unit]
+Description=leemorgan.dev
+After=network.target mongod.service
+Wants=mongod.service
+
+[Service]
+Type=simple
+User=leemorgan
+Group=leemorgan
+WorkingDirectory=/home/leemorgan/code/leemorgan_dev
+Environment=NODE_ENV=production
+Environment=APP_ENV=production
+Environment=HOST=127.0.0.1
+Environment=PORT=3000
+Environment=ORIGIN=https://leemorgan.dev
+Environment=PROTOCOL_HEADER=x-forwarded-proto
+Environment=HOST_HEADER=x-forwarded-host
+EnvironmentFile=/home/leemorgan/code/leemorgan_dev/.env
+ExecStart=/usr/bin/node build
+Restart=on-failure
+RestartSec=5
+KillSignal=SIGINT
+
+[Install]
+WantedBy=multi-user.target

+ 42 - 0
deploy/nginx.conf

@@ -0,0 +1,42 @@
+map $http_upgrade $connection_upgrade {
+	default upgrade;
+	'' close;
+}
+
+server {
+	listen 80;
+	listen [::]:80;
+	server_name leemorgan.dev www.leemorgan.dev;
+	return 301 https://leemorgan.dev$request_uri;
+}
+
+server {
+	listen 443 ssl http2;
+	listen [::]:443 ssl http2;
+	server_name www.leemorgan.dev;
+	return 301 https://leemorgan.dev$request_uri;
+}
+
+server {
+	listen 443 ssl http2;
+	listen [::]:443 ssl http2;
+	server_name leemorgan.dev;
+
+	# ssl_certificate     /etc/letsencrypt/live/leemorgan.dev/fullchain.pem;
+	# ssl_certificate_key /etc/letsencrypt/live/leemorgan.dev/privkey.pem;
+	# include /etc/letsencrypt/options-ssl-nginx.conf;
+
+	client_max_body_size 20m;
+
+	location / {
+		proxy_pass http://127.0.0.1:3000;
+		proxy_http_version 1.1;
+		proxy_set_header Host $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;
+		proxy_set_header Upgrade $http_upgrade;
+		proxy_set_header Connection $connection_upgrade;
+		proxy_read_timeout 60s;
+	}
+}

+ 5 - 5
package-lock.json

@@ -12,7 +12,7 @@
 				"mongodb": "^7.7.0"
 			},
 			"devDependencies": {
-				"@sveltejs/adapter-auto": "^8.0.0",
+				"@sveltejs/adapter-node": "^6.0.0",
 				"@sveltejs/kit": "^3.0.0",
 				"@sveltejs/vite-plugin-svelte": "^7.2.0",
 				"svelte": "^5.57.1",
@@ -392,10 +392,10 @@
 				"acorn": "^8.9.0"
 			}
 		},
-		"node_modules/@sveltejs/adapter-auto": {
-			"version": "8.0.0",
-			"resolved": "https://registry.npmjs.org/@sveltejs/adapter-auto/-/adapter-auto-8.0.0.tgz",
-			"integrity": "sha512-CKOwUS865xfoZn3CpM868slPfitsQ4vmxAR/yOfTIguAwStgkhjhzV0zEhmkzPalH338LJ9XnQX9vfQeY7220A==",
+		"node_modules/@sveltejs/adapter-node": {
+			"version": "6.0.0",
+			"resolved": "https://registry.npmjs.org/@sveltejs/adapter-node/-/adapter-node-6.0.0.tgz",
+			"integrity": "sha512-s7muM4JmJ75OZ8o0G4VRhrEKdi8twuEm3t2o/qQsdlm12hKaX7S/CuUBuw3n983wB/IFBSpzG2ugX0xdGzbKwg==",
 			"dev": true,
 			"license": "MIT",
 			"peerDependencies": {

+ 2 - 1
package.json

@@ -7,10 +7,11 @@
 		"dev": "vite dev",
 		"build": "vite build",
 		"preview": "vite preview",
+		"start": "node build",
 		"prepare": "svelte-kit sync || echo ''"
 	},
 	"devDependencies": {
-		"@sveltejs/adapter-auto": "^8.0.0",
+		"@sveltejs/adapter-node": "^6.0.0",
 		"@sveltejs/kit": "^3.0.0",
 		"@sveltejs/vite-plugin-svelte": "^7.2.0",
 		"svelte": "^5.57.1",

+ 5 - 7
vite.config.js

@@ -1,4 +1,4 @@
-import adapter from '@sveltejs/adapter-auto';
+import adapter from '@sveltejs/adapter-node';
 import { sveltekit } from '@sveltejs/kit/vite';
 import { defineConfig } from 'vite';
 
@@ -9,15 +9,13 @@ export default defineConfig({
 	plugins: [
 		sveltekit({
 			compilerOptions: {
-				// Force runes mode for the project, except for libraries. Can be removed in svelte 6.
 				runes: ({ filename }) =>
 					filename.split(/[/\\]/).includes('node_modules') ? undefined : true
 			},
-
-			// adapter-auto only supports some environments, see https://svelte.dev/docs/kit/adapter-auto for a list.
-			// If your environment is not supported, or you settled on a specific environment, switch out the adapter.
-			// See https://svelte.dev/docs/kit/adapters for more information about adapters.
-			adapter: adapter()
+			adapter: adapter({
+				out: 'build',
+				precompress: true
+			})
 		})
 	]
 });