After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 17 KiB |
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 942 B |
After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 24 KiB |
After Width: | Height: | Size: 33 KiB |
After Width: | Height: | Size: 40 KiB |
After Width: | Height: | Size: 2.5 KiB |
After Width: | Height: | Size: 3.0 KiB |
After Width: | Height: | Size: 50 KiB |
After Width: | Height: | Size: 4.3 KiB |
After Width: | Height: | Size: 67 KiB |
After Width: | Height: | Size: 5.5 KiB |
After Width: | Height: | Size: 5.7 KiB |
After Width: | Height: | Size: 6.9 KiB |
After Width: | Height: | Size: 7.3 KiB |
After Width: | Height: | Size: 7.7 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 48 KiB |
@ -0,0 +1,26 @@
|
|||||||
|
(async() => {
|
||||||
|
const siteDomain = "blog.cybershell.xyz";
|
||||||
|
const sharp = require('sharp');
|
||||||
|
const fs = require('fs');
|
||||||
|
const path = require('path');
|
||||||
|
// const iconDir = path.join(__dirname, siteDomain);
|
||||||
|
const siteImagesDir = path.join(__dirname, 'client', 'img');
|
||||||
|
const siteIconDir = path.join(siteImagesDir, 'icon', siteDomain)
|
||||||
|
const sourceIconFile = 'thumbnail.png';
|
||||||
|
const sourceIconFilePath = path.join(__dirname, sourceIconFile);
|
||||||
|
const sizes = [16, 32, 36, 48, 57, 60, 70, 72, 76, 96, 114, 120, 144, 150, 152, 180, 192, 256, 310, 384, 512];
|
||||||
|
|
||||||
|
await fs.promises.mkdir(siteIconDir, { force: true, recursive: true });
|
||||||
|
for (var size of sizes) {
|
||||||
|
await sharp(sourceIconFilePath).resize({
|
||||||
|
fit: sharp.fit.contain,
|
||||||
|
width: size,
|
||||||
|
height: size
|
||||||
|
}).png()
|
||||||
|
.toFile(path.join(siteIconDir, `icon-${size}x${size}.png`));
|
||||||
|
}
|
||||||
|
|
||||||
|
// await fs.promises.cp(sourceIconFilePath, path.join(siteIconDir, `${siteDomain}.png`));
|
||||||
|
await fs.promises.cp(sourceIconFilePath, path.join(siteImagesDir, 'social-cards', `${siteDomain}.png`));
|
||||||
|
// await fs.promises.cp(iconDir, path.join(siteImagesDir, 'icon' ), { recursive: true });
|
||||||
|
})()
|
@ -0,0 +1,16 @@
|
|||||||
|
[group:sites-chat]
|
||||||
|
programs=dtp-sites-chat
|
||||||
|
|
||||||
|
[program:dtp-sites-chat]
|
||||||
|
numprocs=1
|
||||||
|
process_name=%(program_name)s_%(process_num)02d
|
||||||
|
command=/home/dtp/.nvm/versions/node/v18.12.0/bin/node --optimize_for_size --max_old_space_size=1024 --gc_interval=100 app/workers/chat.js
|
||||||
|
directory=/home/dtp/live/dtp-sites
|
||||||
|
autostart=true
|
||||||
|
autorestart=true
|
||||||
|
startretries=3
|
||||||
|
stopsignal=INT
|
||||||
|
stderr_logfile=/var/log/dtp-sites/host-services.err.log
|
||||||
|
stdout_logfile=/var/log/dtp-sites/host-services.out.log
|
||||||
|
user=dtp
|
||||||
|
environment=HOME='/home/dtp/live/dtp-sites',HTTP_BIND_PORT=30%(process_num)02d,NODE_ENV=production,LOGNAME=host-services
|
@ -0,0 +1,8 @@
|
|||||||
|
|
||||||
|
|
||||||
|
[group:sites-media]
|
||||||
|
program=dtp-sites-media
|
||||||
|
[group:sites-chat]
|
||||||
|
program=dtp-sites-chat
|
||||||
|
[group:sites]
|
||||||
|
program=dtp-sites
|
@ -0,0 +1,17 @@
|
|||||||
|
|
||||||
|
[group:sites-media]
|
||||||
|
programs=dtp-sites-media
|
||||||
|
|
||||||
|
[program:dtp-sites-media]
|
||||||
|
numprocs=1
|
||||||
|
process_name=%(program_name)s_%(process_num)02d
|
||||||
|
command=/home/dtp/.nvm/versions/node/v18.12.0/bin/node --optimize_for_size --max_old_space_size=1024 --gc_interval=100 app/workers/media.js
|
||||||
|
directory=/home/dtp/live/dtp-sites
|
||||||
|
autostart=true
|
||||||
|
autorestart=true
|
||||||
|
startretries=3
|
||||||
|
stopsignal=INT
|
||||||
|
stderr_logfile=/var/log/dtp-sites/host-services.err.log
|
||||||
|
stdout_logfile=/var/log/dtp-sites/host-services.out.log
|
||||||
|
user=dtp
|
||||||
|
environment=HOME='/home/dtp/live/dtp-sites',HTTP_BIND_PORT=30%(process_num)02d,NODE_ENV=production,LOGNAME=host-services
|
@ -0,0 +1,16 @@
|
|||||||
|
[group:sites-newsroom]
|
||||||
|
programs=dtp-sites-newsroom
|
||||||
|
|
||||||
|
[program:dtp-sites-newsroom]
|
||||||
|
numprocs=1
|
||||||
|
process_name=%(program_name)s_%(process_num)02d
|
||||||
|
command=/home/dtp/.nvm/versions/node/v18.12.0/bin/node --optimize_for_size --max_old_space_size=1024 --gc_interval=100 app/workers/newsroom.js
|
||||||
|
directory=/home/dtp/live/dtp-sites
|
||||||
|
autostart=true
|
||||||
|
autorestart=true
|
||||||
|
startretries=3
|
||||||
|
stopsignal=INT
|
||||||
|
stderr_logfile=/var/log/dtp-sites/newsroom.err.log
|
||||||
|
stdout_logfile=/var/log/dtp-sites/newsroom.out.log
|
||||||
|
user=dtp
|
||||||
|
environment=HOME='/home/dtp/live/dtp-sites',HTTP_BIND_PORT=30%(process_num)02d,NODE_ENV=production,LOGNAME=newsroom
|
@ -0,0 +1,16 @@
|
|||||||
|
[group:sites-reeeper]
|
||||||
|
programs=reeeper
|
||||||
|
|
||||||
|
[program:reeeper]
|
||||||
|
numprocs=1
|
||||||
|
process_name=%(program_name)s_%(process_num)02d
|
||||||
|
command=/home/dtp/.nvm/versions/node/v18.12.0/bin/node --optimize_for_size --max_old_space_size=1024 --gc_interval=100 app/workers/reeeper.js
|
||||||
|
directory=/home/dtp/live/dtp-sites
|
||||||
|
autostart=true
|
||||||
|
autorestart=true
|
||||||
|
startretries=3
|
||||||
|
stopsignal=INT
|
||||||
|
stderr_logfile=/var/log/dtp-sites/host-services.err.log
|
||||||
|
stdout_logfile=/var/log/dtp-sites/host-services.out.log
|
||||||
|
user=dtp
|
||||||
|
environment=HOME='/home/dtp/live/dtp-sites',HTTP_BIND_PORT=30%(process_num)02d,NODE_ENV=production,LOGNAME=host-services
|
After Width: | Height: | Size: 48 KiB |
@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
git fetch origin master
|
||||||
|
git merge -s ours origin/master
|