add static generation script

This commit is contained in:
Tykayn 2023-06-27 13:22:03 +02:00 committed by tykayn
parent 7a57caed2c
commit 1d08b01501
9 changed files with 591 additions and 105 deletions

View File

@ -1,57 +1,81 @@
export const LXCcontainerLocalIP = '10.10.10.103' export const LXCcontainerLocalIP = '10.10.10.103'
export const LXCcontainerProtocol = 'https' export const LXCcontainerProtocol = 'https'
export export const listing = {
const domainsConfig = [{ 'com': {
'cipherbliss': [
'portfolio',
'www',
'framadate-api'
]
},
'fr': {
'tykayn': ['']
},
'art': {
'clairelemoine': ['www']
},
}
export let baseDomain = {
LXCcontainerLocalIP,
LXCcontainerProtocol,
name: 'le nom du domaine',
domain: '',
framework: 'static',
letsEncryptNumber: '-001',
}
export const domainsConfig = [{
LXCcontainerLocalIP, LXCcontainerLocalIP,
LXCcontainerProtocol, LXCcontainerProtocol,
name: 'Blog cipherbliss', name: 'Blog cipherbliss',
domain: 'www.cipherbliss.com', domain: 'www.cipherbliss.com',
framework: 'wordpress', framework: 'wordpress',
disableSSL: false,
},{ }, {
LXCcontainerLocalIP, LXCcontainerLocalIP,
LXCcontainerProtocol, LXCcontainerProtocol,
name: 'Portfolio cipherbliss', name: 'Portfolio cipherbliss',
domain: 'portfolio.cipherbliss.com', domain: 'portfolio.cipherbliss.com',
framework: 'symfony', framework: 'symfony',
disableSSL: false,
}, { }, {
LXCcontainerLocalIP, LXCcontainerLocalIP,
LXCcontainerProtocol, LXCcontainerProtocol,
name: 'Blog tykayn - le vortex à chats', name: 'Blog tykayn - le vortex à chats',
domain: 'tykayn.fr', domain: 'tykayn.fr',
framework: 'wordpress', framework: 'wordpress',
disableSSL: false,
redirectToNoWWW: true,
}, { }, {
LXCcontainerLocalIP, LXCcontainerLocalIP,
LXCcontainerProtocol, LXCcontainerProtocol,
name: 'Site de la compagnie la puce à l\'oreille', name: 'Site de la compagnie la puce à l\'oreille',
domain: 'www.pucealoreille.fr', domain: 'www.pucealoreille.fr',
framework: 'wordpress', framework: 'wordpress',
disableSSL: false,
}, { }, {
LXCcontainerLocalIP, LXCcontainerLocalIP,
LXCcontainerProtocol, LXCcontainerProtocol,
name: 'Site de Didier, un bec et des ailes', name: 'Site de Didier, un bec et des ailes',
domain: 'www.unbecetdesailes.fr', domain: 'www.unbecetdesailes.fr',
framework: 'wordpress', framework: 'wordpress',
disableSSL: false,
}, { }, {
LXCcontainerLocalIP, LXCcontainerLocalIP,
LXCcontainerProtocol, LXCcontainerProtocol,
name: 'Site de Catherine Fonder, conteuse', name: 'Site de Catherine Fonder, conteuse',
domain: 'www.catherinefonder.fr', domain: 'www.catherinefonder.fr',
framework: 'wordpress', framework: 'wordpress',
disableSSL: false,
}, { }, {
LXCcontainerLocalIP, LXCcontainerLocalIP,
LXCcontainerProtocol, LXCcontainerProtocol,
name: 'Site de la Fromagerie BSF', name: 'Site de la Fromagerie BSF',
domain: 'www.lafromagerie-bsf.com', domain: 'www.lafromagerie-bsf.com',
framework: 'wordpress', framework: 'wordpress',
disableSSL: false,
redirectToNoWWW: true,
}, },
{ {
LXCcontainerLocalIP, LXCcontainerLocalIP,
@ -59,7 +83,7 @@ const domainsConfig = [{
name: 'Claire Lemoine portfolio', name: 'Claire Lemoine portfolio',
domain: 'www.clairelemoine.art', domain: 'www.clairelemoine.art',
framework: 'wordpress', framework: 'wordpress',
disableSSL: false,
}, },
{ {
@ -68,7 +92,7 @@ const domainsConfig = [{
name: 'Blog Qzine', name: 'Blog Qzine',
domain: 'qzine.fr', domain: 'qzine.fr',
framework: 'wordpress', framework: 'wordpress',
disableSSL: false,
}, },
{ {
LXCcontainerLocalIP, LXCcontainerLocalIP,
@ -76,14 +100,14 @@ const domainsConfig = [{
name: 'Funky Framadate Démo', name: 'Funky Framadate Démo',
domain: 'framadate-api.cipherbliss.com', domain: 'framadate-api.cipherbliss.com',
framework: 'symfony', framework: 'symfony',
disableSSL: false,
}, { }, {
LXCcontainerLocalIP, LXCcontainerLocalIP,
LXCcontainerProtocol, LXCcontainerProtocol,
name: 'Portfolio cipherbliss', name: 'Portfolio cipherbliss',
domain: 'portfolio.cipherbliss.com', domain: 'portfolio.cipherbliss.com',
framework: 'symfony', framework: 'symfony',
disableSSL: false,
}, },
{ {
LXCcontainerLocalIP, LXCcontainerLocalIP,
@ -91,7 +115,126 @@ const domainsConfig = [{
name: 'Caisse Bliss', name: 'Caisse Bliss',
domain: 'caisse.cipherbliss.com', domain: 'caisse.cipherbliss.com',
framework: 'symfony', framework: 'symfony',
disableSSL: false,
},
{
LXCcontainerLocalIP,
LXCcontainerProtocol,
name: 'Meting pot',
domain: 'meltingpot.cipherbliss.com',
framework: 'static',
},
{
LXCcontainerLocalIP,
LXCcontainerProtocol,
name: 'sous domaine de cipherbliss',
domain: 'bitwarden.cipherbliss.com',
framework: 'static',
},
{
LXCcontainerLocalIP,
LXCcontainerProtocol,
name: 'sous domaine de cipherbliss',
domain: 'c.cipherbliss.com',
framework: 'static',
},
{
LXCcontainerLocalIP,
LXCcontainerProtocol,
name: 'sous domaine de cipherbliss',
domain: 'bridge.cipherbliss.com',
framework: 'static',
},
{
LXCcontainerLocalIP,
LXCcontainerProtocol,
name: 'sous domaine de cipherbliss',
domain: 'calc.cipherbliss.com',
framework: 'static',
},
{
LXCcontainerLocalIP,
LXCcontainerProtocol,
name: 'sous domaine de cipherbliss',
domain: 'events.cipherbliss.com',
framework: 'static',
},
{
LXCcontainerLocalIP,
LXCcontainerProtocol,
name: 'sous domaine de cipherbliss',
domain: 'icinga.cipherbliss.com',
framework: 'static',
},
{
LXCcontainerLocalIP,
LXCcontainerProtocol,
name: 'sous domaine de cipherbliss',
domain: 'monit.cipherbliss.com',
framework: 'static',
},
{
LXCcontainerLocalIP,
LXCcontainerProtocol,
name: 'sous domaine de cipherbliss',
domain: 'music.cipherbliss.com',
framework: 'static',
},
{
LXCcontainerLocalIP,
LXCcontainerProtocol,
name: 'sous domaine de cipherbliss',
domain: 'nas.cipherbliss.com',
framework: 'static',
},
{
LXCcontainerLocalIP,
LXCcontainerProtocol,
name: 'sous domaine de cipherbliss',
domain: 'pass.cipherbliss.com',
framework: 'static',
},
{
LXCcontainerLocalIP,
LXCcontainerProtocol,
name: 'sous domaine de cipherbliss',
domain: 'demo.cipherbliss.com',
framework: 'static'
},
{
LXCcontainerLocalIP,
LXCcontainerProtocol,
name: 'sous domaine de cipherbliss',
domain: 'log.cipherbliss.com',
framework: 'static',
},
{
LXCcontainerLocalIP,
LXCcontainerProtocol,
name: 'sous domaine de cipherbliss',
domain: 'participalibre.cipherbliss.com',
framework: 'static',
},
{
LXCcontainerLocalIP,
LXCcontainerProtocol,
name: 'rtfm',
domain: 'www.free-software-academy.com',
framework: 'static',
}, },
{ {
LXCcontainerLocalIP, LXCcontainerLocalIP,
@ -99,7 +242,7 @@ const domainsConfig = [{
name: 'Sondages Qzine', name: 'Sondages Qzine',
domain: 'sondages.qzine.fr', domain: 'sondages.qzine.fr',
framework: 'symfony', framework: 'symfony',
disableSSL: false,
}, },
{ {
LXCcontainerLocalIP, LXCcontainerLocalIP,
@ -107,14 +250,39 @@ const domainsConfig = [{
name: 'Chaton coussinet', name: 'Chaton coussinet',
domain: 'www.coussinet.org', domain: 'www.coussinet.org',
framework: 'static', framework: 'static',
disableSSL: false,
},
{
LXCcontainerLocalIP,
LXCcontainerProtocol,
name: 'panel proxmox coussinet',
domain: 'panel.coussinet.org',
framework: 'static',
},
{
LXCcontainerLocalIP,
LXCcontainerProtocol,
name: 'forge sources coussinet',
domain: 'source.coussinet.org',
framework: 'static',
}, },
{ {
LXCcontainerLocalIP, LXCcontainerLocalIP,
LXCcontainerProtocol, LXCcontainerProtocol,
name: 'Join Fediverse', name: 'Join Fediverse',
domain: 'www.joinfediverse.org', domain: 'www.joinfediverse.org',
redirectToWWW: true,
framework: 'static', framework: 'static',
disableSSL: false,
},
{
LXCcontainerLocalIP,
LXCcontainerProtocol,
name: 'nextcloud',
domain: 'cloud.tykayn.fr',
framework: 'nextcloud',
}, },
] ]

View File

@ -8,8 +8,7 @@ import { makeHostFileForWordpress } from './model.wordpress.mjs'
import { makeHostFileForSymfony } from './model.symfony.mjs' import { makeHostFileForSymfony } from './model.symfony.mjs'
import { makeHostFileForPhpPages } from './model.php-website.mjs' import { makeHostFileForPhpPages } from './model.php-website.mjs'
import { domainsConfig } from './domains.mjs' import { domainsConfig } from './domains.mjs'
import { makeHostFileForNextcloud } from './model.nextcloud.mjs'
// autres frameworks: // autres frameworks:
// nextcloud: cloud.tykayn.fr // nextcloud: cloud.tykayn.fr
@ -21,10 +20,11 @@ import { domainsConfig } from './domains.mjs'
// meltingpot.cipherbliss.com // meltingpot.cipherbliss.com
// joinfediverse // joinfediverse
// coussinet // coussinet
let domainsForHostFile = []; let domainsForHostFile = []
let createFoldersScript = ''
let domainsSorted = domainsConfig.sort((a,b)=>{ let domainsSorted = domainsConfig.sort((a, b) => {
return a.domain - b.domain; return a.domain - b.domain
}) })
for (let configDomain of domainsSorted) { for (let configDomain of domainsSorted) {
@ -39,15 +39,45 @@ for (let configDomain of domainsSorted) {
if (configDomain.framework === 'symfony') { if (configDomain.framework === 'symfony') {
hostFile = makeHostFileForSymfony(configDomain) hostFile = makeHostFileForSymfony(configDomain)
} }
if (configDomain.framework === 'nextcloud') {
hostFile = makeHostFileForNextcloud(configDomain)
}
if (configDomain.framework === 'static') { if (configDomain.framework === 'static') {
hostFile = makeHostFileForPhpPages(configDomain) hostFile = makeHostFileForPhpPages(configDomain)
}
createFoldersScript += '# --------- \n'
createFoldersScript += 'mkdir -p /home/www/' + configDomain.domain + ' \n'
createFoldersScript += 'touch /home/www/' + configDomain.domain + '/index.html \n'
createFoldersScript += 'echo "coucou ' + configDomain.domain + '" > /home/www/' + configDomain.domain + '/index.html \n'
createFoldersScript += ' \n'
writeFile(configDomain.domain + '_direct.conf', hostFile.noContainerNginxConf)
}else{
writeFile(configDomain.domain + '_host.conf', hostFile.homeNginxConf) writeFile(configDomain.domain + '_host.conf', hostFile.homeNginxConf)
writeFile(configDomain.domain + '_container.conf', hostFile.containerNginxConf) writeFile(configDomain.domain + '_container.conf', hostFile.containerNginxConf)
let hostfileDomains = domainsForHostFile.map(domain => ' 127.0.0.1 '+domain+' \n') }
console.log('hostfileDomains', hostfileDomains.join('').replace(',',''))
writeFile('hosts', hostfileDomains.join('').replace(',','')) let renewCertbotScript = domainsForHostFile.map(domain => {
if (domain.redirectToNoWWW || domain.includes('www.')) {
return ' certbot certonly -a webroot --webroot-path=/tmp/letsencrypt-auto -d ' + domain + ' -d ' + domain.replace('www.', '') + ' \n'
} else {
return ' certbot certonly -a webroot --webroot-path=/tmp/letsencrypt-auto -d ' + domain + ' \n'
}
}
)
let hostfileDomains = domainsForHostFile.sort((a, b) => {
return a - b
}).map(domain => ' 127.0.0.1\t' + domain + ' \n')
console.log('hostfileDomains', hostfileDomains.join('').replace(',', ''))
writeFile('certbot_renew.sh', '!#/bin/bash\n' + renewCertbotScript.join('').replace(',', ''))
writeFile('folders_create.sh', createFoldersScript.replace(',', ''))
writeFile('hosts', hostfileDomains.join('')
.replace(',', ''))
} }
function writeFile (fileName, fileContent) { function writeFile (fileName, fileContent) {

View File

@ -0,0 +1,95 @@
/**
* turns a domain config to two config files for nginx web sever on proxmox and its container
* @param domainConfig
* @returns {{homeNginxConf: string, containerNginxConf: string, noContainerNginxConf: string}}
*/
export function makeHostFileForNextcloud (domainConfig) {
let domainWithoutWWW = domainConfig.domain;
if(domainConfig.domain.includes('www.')){
domainWithoutWWW = domainConfig.domain.replace('www.', '')
}
let redirectToNoWWW = domainConfig.redirectToNoWWW | false;
let redirectToNoWWWConf = `
server {
# redirect from www to non-www
server_name ${domainConfig.domain};
listen 80 http2;
return 301 https://${domainWithoutWWW}$request_uri;
}
`;
let redirectToWWW = domainConfig.redirectToWWW | true;
let redirectToWWWConf = `
server {
# redirect from non-www to www
server_name ${domainWithoutWWW};
listen 80 http2;
return 301 https://${domainConfig.domain}$request_uri;
}
`;
let redirectToHTTPS = domainConfig.redirectToNoHTTPS | true;
let redirectToHTTPSConf = `
server {
# redirect to https from http no WWW
server_name ${domainWithoutWWW};
listen 80 http2;
return 301 https://${domainWithoutWWW}$request_uri;
}
`;
if(redirectToWWW && redirectToHTTPS){
redirectToWWWConf += `\tserver {
\t\t\t\t# redirect from www to HTTPS too
server_name ${domainConfig.domain};
listen 80 http2;
return 301 https://${domainConfig.domain}$request_uri;
}`
}
let hostingFileAccess = ` `;
/**
*
* @type {{homeNginxConf: string, containerNginxConf: string, noContainerNginxConf: string}}
*/
const model = {
noContainerNginxConf: `
# ============ ${domainConfig.name} ===============
`,
homeNginxConf: `
# ============ ${domainConfig.name} ===============
server {
server_name ${domainConfig.domain};
listen 80;
return 301 ${domainConfig.domain}$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name ${domainConfig.domain};
ssl_certificate /etc/letsencrypt/live/${domainConfig.domain}/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/${domainConfig.domain}/privkey.pem;
location / {
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
# Container nextcloud
proxy_pass https://10.10.10.106;
}
add_header Permissions-Policy "interest-cohort=()";
}
`,
containerNginxConf: `
# ============ ${domainConfig.name} | côté conteneur LXC ===============
# rien à ajouter si c'est du snap
# ========================== ${domainConfig.name} | fin ================ #
`
}
return model
}

View File

@ -1,7 +1,7 @@
/** /**
* turns a domain config to two config files for nginx web sever on proxmox and its container * turns a domain config to two config files for nginx web sever on proxmox and its container
* @param domainConfig * @param domainConfig
* @returns {{homeNginxConf: string, containerNginxConf: string}} * @returns {{homeNginxConf: string, containerNginxConf: string, noContainerNginxConf: string}}
*/ */
export function makeHostFileForPhpPages (domainConfig) { export function makeHostFileForPhpPages (domainConfig) {
@ -9,41 +9,124 @@ export function makeHostFileForPhpPages (domainConfig) {
if(domainConfig.domain.includes('www.')){ if(domainConfig.domain.includes('www.')){
domainWithoutWWW = domainConfig.domain.replace('www.', '') domainWithoutWWW = domainConfig.domain.replace('www.', '')
} }
let certbotChallengeAcmeRedirect = `
\tlocation ^~ /.well-known/acme-challenge/ {
\t\tallow all;
\t\troot /var/lib/letsencrypt/;
\t\tdefault_type "text/plain";
\t\ttry_files $uri =404;
\t}
`;
let redirectToNoWWW = false; let redirectToNoWWW = domainConfig.redirectToNoWWW | false;
let redirectToNoWWWConf = ` let redirectToNoWWWConf = `
server { \tserver {
# redirect from www to non-www \t\t# redirect from www to non-www
server_name ${domainConfig.domain}; \t\tserver_name ${domainConfig.domain};
listen 80 http2; \t\tlisten 80 http2;
return 301 https://${domainWithoutWWW}$request_uri; \t\treturn 301 https://${domainWithoutWWW}$request_uri;
} \t}
`; `;
let redirectToWWW = true; let redirectToWWW = domainConfig.redirectToWWW | true;
let redirectToWWWConf = ` let redirectToWWWConf = `
server { \tserver {
# redirect from non-www to www \t\t# redirect from non-www to www
server_name ${domainWithoutWWW}; \t\tserver_name ${domainWithoutWWW};
listen 80 http2; \t\tlisten 80 http2;
return 301 https://${domainConfig.domain}$request_uri; \t\treturn 301 https://${domainConfig.domain}$request_uri;
} \t}
`; `;
let redirectToHTTPS = true; let redirectToHTTPS = domainConfig.redirectToNoHTTPS | true;
let redirectToHTTPSConf = ` let redirectToHTTPSConf = `
server { \tserver {
# redirect to https from http \t\t# redirect to https from http no WWW
\t\tserver_name ${domainWithoutWWW};
\t\tlisten 80 http2;
${certbotChallengeAcmeRedirect}
\t\t# return 301 https://${domainWithoutWWW}$request_uri;
\t}
`;
if(redirectToWWW && redirectToHTTPS){
redirectToWWWConf += `\tserver {
\t\t\t\t# redirect from www to HTTPS too
server_name ${domainConfig.domain}; server_name ${domainConfig.domain};
listen 80 http2; listen 80 http2;
return 301 https://${domainConfig.domain}$request_uri; return 301 https://${domainConfig.domain}$request_uri;
} }`
`; }
let hostingFileAccess = `
# ----------- hosting file config ----------------
root /home/www/${domainConfig.domain};
index index.php index.html;
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \\.php$ {
include fastcgi.conf;
fastcgi_intercept_errors on;
fastcgi_pass php-handler;
}
location ~* \\.(js|css|png|jpg|jpeg|gif|ico)$ {
expires max;
log_not_found off;
}
add_header Permissions-Policy "interest-cohort=()";
include /etc/nginx/snippets/letsencrypt-acme-challenge.conf;
`;
/** /**
* @type {{homeNginxConf: string, containerNginxConf: string}} *
* @type {{homeNginxConf: string, containerNginxConf: string, noContainerNginxConf: string}}
*/ */
const model = { const model = {
noContainerNginxConf: `
# ============ ${domainConfig.name} ===============
${redirectToNoWWW ? redirectToNoWWWConf : '' }
${redirectToWWW ? redirectToWWWConf : '' }
${redirectToHTTPS ? redirectToHTTPSConf : '' }
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name ${domainConfig.domain};
ssl_certificate /etc/letsencrypt/live/${domainConfig.domain}-0001/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/${domainConfig.domain}-0001/privkey.pem;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";
${hostingFileAccess}
${certbotChallengeAcmeRedirect}
}
`,
homeNginxConf: ` homeNginxConf: `
# ============ ${domainConfig.name} =============== # ============ ${domainConfig.name} ===============
@ -62,15 +145,7 @@ server {
ssl_certificate_key /etc/letsencrypt/live/${domainConfig.domain}-0001/privkey.pem; ssl_certificate_key /etc/letsencrypt/live/${domainConfig.domain}-0001/privkey.pem;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"; add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";
location / { ${hostingFileAccess}
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
# Container tksites
proxy_pass ${domainConfig.LXCcontainerProtocol}://${domainConfig.LXCcontainerLocalIP};
}
add_header Permissions-Policy "interest-cohort=()";
include /etc/nginx/snippets/letsencrypt-acme-challenge.conf;
} }
`, `,
containerNginxConf: ` containerNginxConf: `
@ -85,38 +160,7 @@ server {
listen [::]:80 ; listen [::]:80 ;
server_name ${domainConfig.domain}; server_name ${domainConfig.domain};
add_header Permissions-Policy "interest-cohort=()"; ${hostingFileAccess}
root /home/www/${domainConfig.domain};
index index.php index.html;
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \\.php$ {
#NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
include fastcgi.conf;
fastcgi_intercept_errors on;
fastcgi_pass php-handler;
}
location ~* \\.(js|css|png|jpg|jpeg|gif|ico)$ {
expires max;
log_not_found off;
}
add_header Permissions-Policy "interest-cohort=()";
} }
# ========================== ${domainConfig.name} | fin ================ # # ========================== ${domainConfig.name} | fin ================ #

View File

@ -5,6 +5,7 @@
*/ */
export function makeHostFileForSymfony(domainConfig){ export function makeHostFileForSymfony(domainConfig){
const model = { const model = {
noContainerNginxConf: ``,
homeNginxConf : ` homeNginxConf : `
# ---------------- ${domainConfig.name} ------------------------- # ---------------- ${domainConfig.name} -------------------------
# ---------- un site utilisant Symfony -------------------------- # ---------- un site utilisant Symfony --------------------------

View File

@ -17,6 +17,7 @@ export function makeHostFileForWordpress (domainConfig) {
* @type {{homeNginxConf: string, containerNginxConf: string}} * @type {{homeNginxConf: string, containerNginxConf: string}}
*/ */
const model = { const model = {
noContainerNginxConf: ``,
homeNginxConf: ` homeNginxConf: `
# ============ ${domainConfig.name} =============== # ============ ${domainConfig.name} ===============
# ---------- un site utilisant Wordpress ---------- # ---------- un site utilisant Wordpress ----------

View File

@ -0,0 +1,34 @@
!#/bin/bash
certbot certonly -a webroot --webroot-path=/tmp/letsencrypt-auto -d www.cipherbliss.com -d cipherbliss.com
certbot certonly -a webroot --webroot-path=/tmp/letsencrypt-auto -d portfolio.cipherbliss.com
certbot certonly -a webroot --webroot-path=/tmp/letsencrypt-auto -d tykayn.fr
certbot certonly -a webroot --webroot-path=/tmp/letsencrypt-auto -d www.pucealoreille.fr -d pucealoreille.fr
certbot certonly -a webroot --webroot-path=/tmp/letsencrypt-auto -d www.unbecetdesailes.fr -d unbecetdesailes.fr
certbot certonly -a webroot --webroot-path=/tmp/letsencrypt-auto -d www.catherinefonder.fr -d catherinefonder.fr
certbot certonly -a webroot --webroot-path=/tmp/letsencrypt-auto -d www.lafromagerie-bsf.com -d lafromagerie-bsf.com
certbot certonly -a webroot --webroot-path=/tmp/letsencrypt-auto -d www.clairelemoine.art -d clairelemoine.art
certbot certonly -a webroot --webroot-path=/tmp/letsencrypt-auto -d qzine.fr
certbot certonly -a webroot --webroot-path=/tmp/letsencrypt-auto -d framadate-api.cipherbliss.com
certbot certonly -a webroot --webroot-path=/tmp/letsencrypt-auto -d portfolio.cipherbliss.com
certbot certonly -a webroot --webroot-path=/tmp/letsencrypt-auto -d caisse.cipherbliss.com
certbot certonly -a webroot --webroot-path=/tmp/letsencrypt-auto -d meltingpot.cipherbliss.com
certbot certonly -a webroot --webroot-path=/tmp/letsencrypt-auto -d bitwarden.cipherbliss.com
certbot certonly -a webroot --webroot-path=/tmp/letsencrypt-auto -d c.cipherbliss.com
certbot certonly -a webroot --webroot-path=/tmp/letsencrypt-auto -d bridge.cipherbliss.com
certbot certonly -a webroot --webroot-path=/tmp/letsencrypt-auto -d calc.cipherbliss.com
certbot certonly -a webroot --webroot-path=/tmp/letsencrypt-auto -d events.cipherbliss.com
certbot certonly -a webroot --webroot-path=/tmp/letsencrypt-auto -d icinga.cipherbliss.com
certbot certonly -a webroot --webroot-path=/tmp/letsencrypt-auto -d monit.cipherbliss.com
certbot certonly -a webroot --webroot-path=/tmp/letsencrypt-auto -d music.cipherbliss.com
certbot certonly -a webroot --webroot-path=/tmp/letsencrypt-auto -d nas.cipherbliss.com
certbot certonly -a webroot --webroot-path=/tmp/letsencrypt-auto -d pass.cipherbliss.com
certbot certonly -a webroot --webroot-path=/tmp/letsencrypt-auto -d demo.cipherbliss.com
certbot certonly -a webroot --webroot-path=/tmp/letsencrypt-auto -d log.cipherbliss.com
certbot certonly -a webroot --webroot-path=/tmp/letsencrypt-auto -d participalibre.cipherbliss.com
certbot certonly -a webroot --webroot-path=/tmp/letsencrypt-auto -d www.free-software-academy.com -d free-software-academy.com
certbot certonly -a webroot --webroot-path=/tmp/letsencrypt-auto -d sondages.qzine.fr
certbot certonly -a webroot --webroot-path=/tmp/letsencrypt-auto -d www.coussinet.org -d coussinet.org
certbot certonly -a webroot --webroot-path=/tmp/letsencrypt-auto -d panel.coussinet.org
certbot certonly -a webroot --webroot-path=/tmp/letsencrypt-auto -d source.coussinet.org
certbot certonly -a webroot --webroot-path=/tmp/letsencrypt-auto -d www.joinfediverse.org -d joinfediverse.org
certbot certonly -a webroot --webroot-path=/tmp/letsencrypt-auto -d cloud.tykayn.fr

View File

@ -0,0 +1,95 @@
# ---------
mkdir -p /home/www/meltingpot.cipherbliss.com
touch /home/www/meltingpot.cipherbliss.com/index.html
echo "coucou meltingpot.cipherbliss.com" > /home/www/meltingpot.cipherbliss.com/index.html
# ---------
mkdir -p /home/www/bitwarden.cipherbliss.com
touch /home/www/bitwarden.cipherbliss.com/index.html
echo "coucou bitwarden.cipherbliss.com" > /home/www/bitwarden.cipherbliss.com/index.html
# ---------
mkdir -p /home/www/c.cipherbliss.com
touch /home/www/c.cipherbliss.com/index.html
echo "coucou c.cipherbliss.com" > /home/www/c.cipherbliss.com/index.html
# ---------
mkdir -p /home/www/bridge.cipherbliss.com
touch /home/www/bridge.cipherbliss.com/index.html
echo "coucou bridge.cipherbliss.com" > /home/www/bridge.cipherbliss.com/index.html
# ---------
mkdir -p /home/www/calc.cipherbliss.com
touch /home/www/calc.cipherbliss.com/index.html
echo "coucou calc.cipherbliss.com" > /home/www/calc.cipherbliss.com/index.html
# ---------
mkdir -p /home/www/events.cipherbliss.com
touch /home/www/events.cipherbliss.com/index.html
echo "coucou events.cipherbliss.com" > /home/www/events.cipherbliss.com/index.html
# ---------
mkdir -p /home/www/icinga.cipherbliss.com
touch /home/www/icinga.cipherbliss.com/index.html
echo "coucou icinga.cipherbliss.com" > /home/www/icinga.cipherbliss.com/index.html
# ---------
mkdir -p /home/www/monit.cipherbliss.com
touch /home/www/monit.cipherbliss.com/index.html
echo "coucou monit.cipherbliss.com" > /home/www/monit.cipherbliss.com/index.html
# ---------
mkdir -p /home/www/music.cipherbliss.com
touch /home/www/music.cipherbliss.com/index.html
echo "coucou music.cipherbliss.com" > /home/www/music.cipherbliss.com/index.html
# ---------
mkdir -p /home/www/nas.cipherbliss.com
touch /home/www/nas.cipherbliss.com/index.html
echo "coucou nas.cipherbliss.com" > /home/www/nas.cipherbliss.com/index.html
# ---------
mkdir -p /home/www/pass.cipherbliss.com
touch /home/www/pass.cipherbliss.com/index.html
echo "coucou pass.cipherbliss.com" > /home/www/pass.cipherbliss.com/index.html
# ---------
mkdir -p /home/www/demo.cipherbliss.com
touch /home/www/demo.cipherbliss.com/index.html
echo "coucou demo.cipherbliss.com" > /home/www/demo.cipherbliss.com/index.html
# ---------
mkdir -p /home/www/log.cipherbliss.com
touch /home/www/log.cipherbliss.com/index.html
echo "coucou log.cipherbliss.com" > /home/www/log.cipherbliss.com/index.html
# ---------
mkdir -p /home/www/participalibre.cipherbliss.com
touch /home/www/participalibre.cipherbliss.com/index.html
echo "coucou participalibre.cipherbliss.com" > /home/www/participalibre.cipherbliss.com/index.html
# ---------
mkdir -p /home/www/www.free-software-academy.com
touch /home/www/www.free-software-academy.com/index.html
echo "coucou www.free-software-academy.com" > /home/www/www.free-software-academy.com/index.html
# ---------
mkdir -p /home/www/www.coussinet.org
touch /home/www/www.coussinet.org/index.html
echo "coucou www.coussinet.org" > /home/www/www.coussinet.org/index.html
# ---------
mkdir -p /home/www/panel.coussinet.org
touch /home/www/panel.coussinet.org/index.html
echo "coucou panel.coussinet.org" > /home/www/panel.coussinet.org/index.html
# ---------
mkdir -p /home/www/source.coussinet.org
touch /home/www/source.coussinet.org/index.html
echo "coucou source.coussinet.org" > /home/www/source.coussinet.org/index.html
# ---------
mkdir -p /home/www/www.joinfediverse.org
touch /home/www/www.joinfediverse.org/index.html
echo "coucou www.joinfediverse.org" > /home/www/www.joinfediverse.org/index.html

View File

@ -1,15 +1,33 @@
127.0.0.1 www.cipherbliss.com 127.0.0.1 www.cipherbliss.com
127.0.0.1 portfolio.cipherbliss.com 127.0.0.1 portfolio.cipherbliss.com
127.0.0.1 tykayn.fr 127.0.0.1 tykayn.fr
127.0.0.1 www.pucealoreille.fr 127.0.0.1 www.pucealoreille.fr
127.0.0.1 www.unbecetdesailes.fr 127.0.0.1 www.unbecetdesailes.fr
127.0.0.1 www.catherinefonder.fr 127.0.0.1 www.catherinefonder.fr
127.0.0.1 www.lafromagerie-bsf.com 127.0.0.1 www.lafromagerie-bsf.com
127.0.0.1 www.clairelemoine.art 127.0.0.1 www.clairelemoine.art
127.0.0.1 qzine.fr 127.0.0.1 qzine.fr
127.0.0.1 framadate-api.cipherbliss.com 127.0.0.1 framadate-api.cipherbliss.com
127.0.0.1 portfolio.cipherbliss.com 127.0.0.1 portfolio.cipherbliss.com
127.0.0.1 caisse.cipherbliss.com 127.0.0.1 caisse.cipherbliss.com
127.0.0.1 sondages.qzine.fr 127.0.0.1 meltingpot.cipherbliss.com
127.0.0.1 www.coussinet.org 127.0.0.1 bitwarden.cipherbliss.com
127.0.0.1 www.joinfediverse.org 127.0.0.1 c.cipherbliss.com
127.0.0.1 bridge.cipherbliss.com
127.0.0.1 calc.cipherbliss.com
127.0.0.1 events.cipherbliss.com
127.0.0.1 icinga.cipherbliss.com
127.0.0.1 monit.cipherbliss.com
127.0.0.1 music.cipherbliss.com
127.0.0.1 nas.cipherbliss.com
127.0.0.1 pass.cipherbliss.com
127.0.0.1 demo.cipherbliss.com
127.0.0.1 log.cipherbliss.com
127.0.0.1 participalibre.cipherbliss.com
127.0.0.1 www.free-software-academy.com
127.0.0.1 sondages.qzine.fr
127.0.0.1 www.coussinet.org
127.0.0.1 panel.coussinet.org
127.0.0.1 source.coussinet.org
127.0.0.1 www.joinfediverse.org
127.0.0.1 cloud.tykayn.fr