diff options
| -rw-r--r-- | docker/crupest-nginx/Dockerfile | 8 | ||||
| -rw-r--r-- | docker/crupest-nginx/sites/www/.dockerignore | 2 | ||||
| -rw-r--r-- | docker/crupest-nginx/sites/www/.gitignore | 24 | ||||
| -rw-r--r-- | docker/crupest-nginx/sites/www/index.html | 53 | ||||
| -rw-r--r-- | docker/crupest-nginx/sites/www/package.json | 14 | ||||
| -rw-r--r-- | docker/crupest-nginx/sites/www/pnpm-lock.yaml | 345 | ||||
| -rw-r--r-- | docker/crupest-nginx/sites/www/src/main.js | 83 | ||||
| -rw-r--r-- | docker/crupest-nginx/sites/www/src/style.css | 24 | ||||
| -rw-r--r-- | site/index.html | 15 | ||||
| -rw-r--r-- | template/docker-compose.yaml.template | 10 | 
10 files changed, 560 insertions, 18 deletions
| diff --git a/docker/crupest-nginx/Dockerfile b/docker/crupest-nginx/Dockerfile new file mode 100644 index 0000000..e5e4755 --- /dev/null +++ b/docker/crupest-nginx/Dockerfile @@ -0,0 +1,8 @@ +FROM node:latest AS build +RUN npm install -g pnpm +COPY sites/www /sites/www +WORKDIR /sites/www +RUN pnpm install --frozen-lockfile && pnpm run build + +FROM nginx:latest +COPY --from=build /sites/www/dist /srv/www diff --git a/docker/crupest-nginx/sites/www/.dockerignore b/docker/crupest-nginx/sites/www/.dockerignore new file mode 100644 index 0000000..de4d1f0 --- /dev/null +++ b/docker/crupest-nginx/sites/www/.dockerignore @@ -0,0 +1,2 @@ +dist +node_modules diff --git a/docker/crupest-nginx/sites/www/.gitignore b/docker/crupest-nginx/sites/www/.gitignore new file mode 100644 index 0000000..a547bf3 --- /dev/null +++ b/docker/crupest-nginx/sites/www/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/docker/crupest-nginx/sites/www/index.html b/docker/crupest-nginx/sites/www/index.html new file mode 100644 index 0000000..56089ac --- /dev/null +++ b/docker/crupest-nginx/sites/www/index.html @@ -0,0 +1,53 @@ +<!DOCTYPE html> +<html lang="en"> + +<head> +  <meta charset="UTF-8" /> +  <meta http-equiv="X-UA-Compatible" content="IE=edge"> +  <link rel="icon" type="image/svg+xml" href="/vite.svg" /> +  <meta name="viewport" content="width=device-width, initial-scale=1.0" /> +  <title>crupest</title> +</head> + +<body> +  <div id="color-strip-container"></div> +  <article id="main-article"> +    <h1>This is crupest.</h1> +    <p>Welcome To crupest Home!🏠</p> +    <p>I'm very glad to meet you in this page. This is my new home.</p> +    <p>Feel free to contact by email at crupest@outlook.com or, of course I@crupest.life . You can also file an issue in +      any repo on GitHub. Here is the link to my GitHub profile: <a +        href="https://github.com/crupest">https://github.com/crupest</a> .</p> +    <p>Currently this page is hosted on my own server and my own apex domain (crupest.life). You can also share this +      website link, aka, <a href="https://crupest.life">https://crupest.life</a> .</p> +    <p>This is just the home page. I also run some other services on my server and under this domain's subdomain:</p> +    <p>Public:</p> +    <ul> +      <li><a href="https://blog.crupest.life" target="_blank">https://blog.crupest.life</a>: My blogs in Chinese with <a +          href="https://github.com/halo-dev/halo" target="_blank">halo</a>.</li> +      <li><a href="https://timeline.crupest.life" target="_blank">https://timeline.crupest.life</a>: My microblogs with +        my +        own web app <a href="https://github.com/crupest/Timeline">Timeline</a>.</li> +    </ul> +    <p>Private:</p> +    <ul> +      <li><a href="https://code.crupest.life" target="_blank">https://code.crupest.life</a>: Browser based vscode with +        <a href="https://github.com/coder/code-server" target="_blank">code-server</a>. +      </li> +    </ul> +    <p>If you wish to deploy similar services like mine, you are in the right place. Take a look at <a +        href="https://github.com/crupest/crupest" target="_blank">https://github.com/crupest/crupest</a> and there is +      all you need to start with. The services are built with <a href="https://docs.docker.com" +        target="_blank">docker-compose</a> and some template methodology. There is a convenient python script to help +      you build from start. I don't fully test it because I never migrate my data into other server so it might be kind +      of buggy. However, it always takes some time to make it your own sites. But don't worry and feel free to contact +      me if you run into any issue and I would be glad to help you out.</p> +  </article> +  <h2>TODOs of me:</h2> +  <p id="todo-message">Fetching...</p> +  <ul id="todo-container"> +  </ul> +  <script type="module" src="/src/main.js"></script> +</body> + +</html>
\ No newline at end of file diff --git a/docker/crupest-nginx/sites/www/package.json b/docker/crupest-nginx/sites/www/package.json new file mode 100644 index 0000000..fbd0fb9 --- /dev/null +++ b/docker/crupest-nginx/sites/www/package.json @@ -0,0 +1,14 @@ +{ +  "name": "crupest-root", +  "private": true, +  "version": "0.1.0", +  "type": "module", +  "scripts": { +    "dev": "vite", +    "build": "vite build", +    "preview": "vite preview" +  }, +  "devDependencies": { +    "vite": "^3.2.4" +  } +}
\ No newline at end of file diff --git a/docker/crupest-nginx/sites/www/pnpm-lock.yaml b/docker/crupest-nginx/sites/www/pnpm-lock.yaml new file mode 100644 index 0000000..0f7783f --- /dev/null +++ b/docker/crupest-nginx/sites/www/pnpm-lock.yaml @@ -0,0 +1,345 @@ +lockfileVersion: 5.4 + +specifiers: +  vite: ^3.2.4 + +devDependencies: +  vite: 3.2.4 + +packages: + +  /@esbuild/android-arm/0.15.15: +    resolution: {integrity: sha512-JJjZjJi2eBL01QJuWjfCdZxcIgot+VoK6Fq7eKF9w4YHm9hwl7nhBR1o2Wnt/WcANk5l9SkpvrldW1PLuXxcbw==} +    engines: {node: '>=12'} +    cpu: [arm] +    os: [android] +    requiresBuild: true +    dev: true +    optional: true + +  /@esbuild/linux-loong64/0.15.15: +    resolution: {integrity: sha512-lhz6UNPMDXUhtXSulw8XlFAtSYO26WmHQnCi2Lg2p+/TMiJKNLtZCYUxV4wG6rZMzXmr8InGpNwk+DLT2Hm0PA==} +    engines: {node: '>=12'} +    cpu: [loong64] +    os: [linux] +    requiresBuild: true +    dev: true +    optional: true + +  /esbuild-android-64/0.15.15: +    resolution: {integrity: sha512-F+WjjQxO+JQOva3tJWNdVjouFMLK6R6i5gjDvgUthLYJnIZJsp1HlF523k73hELY20WPyEO8xcz7aaYBVkeg5Q==} +    engines: {node: '>=12'} +    cpu: [x64] +    os: [android] +    requiresBuild: true +    dev: true +    optional: true + +  /esbuild-android-arm64/0.15.15: +    resolution: {integrity: sha512-attlyhD6Y22jNyQ0fIIQ7mnPvDWKw7k6FKnsXlBvQE6s3z6s6cuEHcSgoirquQc7TmZgVCK5fD/2uxmRN+ZpcQ==} +    engines: {node: '>=12'} +    cpu: [arm64] +    os: [android] +    requiresBuild: true +    dev: true +    optional: true + +  /esbuild-darwin-64/0.15.15: +    resolution: {integrity: sha512-ohZtF8W1SHJ4JWldsPVdk8st0r9ExbAOSrBOh5L+Mq47i696GVwv1ab/KlmbUoikSTNoXEhDzVpxUR/WIO19FQ==} +    engines: {node: '>=12'} +    cpu: [x64] +    os: [darwin] +    requiresBuild: true +    dev: true +    optional: true + +  /esbuild-darwin-arm64/0.15.15: +    resolution: {integrity: sha512-P8jOZ5zshCNIuGn+9KehKs/cq5uIniC+BeCykvdVhx/rBXSxmtj3CUIKZz4sDCuESMbitK54drf/2QX9QHG5Ag==} +    engines: {node: '>=12'} +    cpu: [arm64] +    os: [darwin] +    requiresBuild: true +    dev: true +    optional: true + +  /esbuild-freebsd-64/0.15.15: +    resolution: {integrity: sha512-KkTg+AmDXz1IvA9S1gt8dE24C8Thx0X5oM0KGF322DuP+P3evwTL9YyusHAWNsh4qLsR80nvBr/EIYs29VSwuA==} +    engines: {node: '>=12'} +    cpu: [x64] +    os: [freebsd] +    requiresBuild: true +    dev: true +    optional: true + +  /esbuild-freebsd-arm64/0.15.15: +    resolution: {integrity: sha512-FUcML0DRsuyqCMfAC+HoeAqvWxMeq0qXvclZZ/lt2kLU6XBnDA5uKTLUd379WYEyVD4KKFctqWd9tTuk8C/96g==} +    engines: {node: '>=12'} +    cpu: [arm64] +    os: [freebsd] +    requiresBuild: true +    dev: true +    optional: true + +  /esbuild-linux-32/0.15.15: +    resolution: {integrity: sha512-q28Qn5pZgHNqug02aTkzw5sW9OklSo96b5nm17Mq0pDXrdTBcQ+M6Q9A1B+dalFeynunwh/pvfrNucjzwDXj+Q==} +    engines: {node: '>=12'} +    cpu: [ia32] +    os: [linux] +    requiresBuild: true +    dev: true +    optional: true + +  /esbuild-linux-64/0.15.15: +    resolution: {integrity: sha512-217KPmWMirkf8liO+fj2qrPwbIbhNTGNVtvqI1TnOWJgcMjUWvd677Gq3fTzXEjilkx2yWypVnTswM2KbXgoAg==} +    engines: {node: '>=12'} +    cpu: [x64] +    os: [linux] +    requiresBuild: true +    dev: true +    optional: true + +  /esbuild-linux-arm/0.15.15: +    resolution: {integrity: sha512-RYVW9o2yN8yM7SB1yaWr378CwrjvGCyGybX3SdzPHpikUHkME2AP55Ma20uNwkNyY2eSYFX9D55kDrfQmQBR4w==} +    engines: {node: '>=12'} +    cpu: [arm] +    os: [linux] +    requiresBuild: true +    dev: true +    optional: true + +  /esbuild-linux-arm64/0.15.15: +    resolution: {integrity: sha512-/ltmNFs0FivZkYsTzAsXIfLQX38lFnwJTWCJts0IbCqWZQe+jjj0vYBNbI0kmXLb3y5NljiM5USVAO1NVkdh2g==} +    engines: {node: '>=12'} +    cpu: [arm64] +    os: [linux] +    requiresBuild: true +    dev: true +    optional: true + +  /esbuild-linux-mips64le/0.15.15: +    resolution: {integrity: sha512-PksEPb321/28GFFxtvL33yVPfnMZihxkEv5zME2zapXGp7fA1X2jYeiTUK+9tJ/EGgcNWuwvtawPxJG7Mmn86A==} +    engines: {node: '>=12'} +    cpu: [mips64el] +    os: [linux] +    requiresBuild: true +    dev: true +    optional: true + +  /esbuild-linux-ppc64le/0.15.15: +    resolution: {integrity: sha512-ek8gJBEIhcpGI327eAZigBOHl58QqrJrYYIZBWQCnH3UnXoeWMrMZLeeZL8BI2XMBhP+sQ6ERctD5X+ajL/AIA==} +    engines: {node: '>=12'} +    cpu: [ppc64] +    os: [linux] +    requiresBuild: true +    dev: true +    optional: true + +  /esbuild-linux-riscv64/0.15.15: +    resolution: {integrity: sha512-H5ilTZb33/GnUBrZMNJtBk7/OXzDHDXjIzoLXHSutwwsLxSNaLxzAaMoDGDd/keZoS+GDBqNVxdCkpuiRW4OSw==} +    engines: {node: '>=12'} +    cpu: [riscv64] +    os: [linux] +    requiresBuild: true +    dev: true +    optional: true + +  /esbuild-linux-s390x/0.15.15: +    resolution: {integrity: sha512-jKaLUg78mua3rrtrkpv4Or2dNTJU7bgHN4bEjT4OX4GR7nLBSA9dfJezQouTxMmIW7opwEC5/iR9mpC18utnxQ==} +    engines: {node: '>=12'} +    cpu: [s390x] +    os: [linux] +    requiresBuild: true +    dev: true +    optional: true + +  /esbuild-netbsd-64/0.15.15: +    resolution: {integrity: sha512-aOvmF/UkjFuW6F36HbIlImJTTx45KUCHJndtKo+KdP8Dhq3mgLRKW9+6Ircpm8bX/RcS3zZMMmaBLkvGY06Gvw==} +    engines: {node: '>=12'} +    cpu: [x64] +    os: [netbsd] +    requiresBuild: true +    dev: true +    optional: true + +  /esbuild-openbsd-64/0.15.15: +    resolution: {integrity: sha512-HFFX+WYedx1w2yJ1VyR1Dfo8zyYGQZf1cA69bLdrHzu9svj6KH6ZLK0k3A1/LFPhcEY9idSOhsB2UyU0tHPxgQ==} +    engines: {node: '>=12'} +    cpu: [x64] +    os: [openbsd] +    requiresBuild: true +    dev: true +    optional: true + +  /esbuild-sunos-64/0.15.15: +    resolution: {integrity: sha512-jOPBudffG4HN8yJXcK9rib/ZTFoTA5pvIKbRrt3IKAGMq1EpBi4xoVoSRrq/0d4OgZLaQbmkHp8RO9eZIn5atA==} +    engines: {node: '>=12'} +    cpu: [x64] +    os: [sunos] +    requiresBuild: true +    dev: true +    optional: true + +  /esbuild-windows-32/0.15.15: +    resolution: {integrity: sha512-MDkJ3QkjnCetKF0fKxCyYNBnOq6dmidcwstBVeMtXSgGYTy8XSwBeIE4+HuKiSsG6I/mXEb++px3IGSmTN0XiA==} +    engines: {node: '>=12'} +    cpu: [ia32] +    os: [win32] +    requiresBuild: true +    dev: true +    optional: true + +  /esbuild-windows-64/0.15.15: +    resolution: {integrity: sha512-xaAUIB2qllE888SsMU3j9nrqyLbkqqkpQyWVkfwSil6BBPgcPk3zOFitTTncEKCLTQy3XV9RuH7PDj3aJDljWA==} +    engines: {node: '>=12'} +    cpu: [x64] +    os: [win32] +    requiresBuild: true +    dev: true +    optional: true + +  /esbuild-windows-arm64/0.15.15: +    resolution: {integrity: sha512-ttuoCYCIJAFx4UUKKWYnFdrVpoXa3+3WWkXVI6s09U+YjhnyM5h96ewTq/WgQj9LFSIlABQvadHSOQyAVjW5xQ==} +    engines: {node: '>=12'} +    cpu: [arm64] +    os: [win32] +    requiresBuild: true +    dev: true +    optional: true + +  /esbuild/0.15.15: +    resolution: {integrity: sha512-TEw/lwK4Zzld9x3FedV6jy8onOUHqcEX3ADFk4k+gzPUwrxn8nWV62tH0udo8jOtjFodlEfc4ypsqX3e+WWO6w==} +    engines: {node: '>=12'} +    hasBin: true +    requiresBuild: true +    optionalDependencies: +      '@esbuild/android-arm': 0.15.15 +      '@esbuild/linux-loong64': 0.15.15 +      esbuild-android-64: 0.15.15 +      esbuild-android-arm64: 0.15.15 +      esbuild-darwin-64: 0.15.15 +      esbuild-darwin-arm64: 0.15.15 +      esbuild-freebsd-64: 0.15.15 +      esbuild-freebsd-arm64: 0.15.15 +      esbuild-linux-32: 0.15.15 +      esbuild-linux-64: 0.15.15 +      esbuild-linux-arm: 0.15.15 +      esbuild-linux-arm64: 0.15.15 +      esbuild-linux-mips64le: 0.15.15 +      esbuild-linux-ppc64le: 0.15.15 +      esbuild-linux-riscv64: 0.15.15 +      esbuild-linux-s390x: 0.15.15 +      esbuild-netbsd-64: 0.15.15 +      esbuild-openbsd-64: 0.15.15 +      esbuild-sunos-64: 0.15.15 +      esbuild-windows-32: 0.15.15 +      esbuild-windows-64: 0.15.15 +      esbuild-windows-arm64: 0.15.15 +    dev: true + +  /fsevents/2.3.2: +    resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} +    engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} +    os: [darwin] +    requiresBuild: true +    dev: true +    optional: true + +  /function-bind/1.1.1: +    resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} +    dev: true + +  /has/1.0.3: +    resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} +    engines: {node: '>= 0.4.0'} +    dependencies: +      function-bind: 1.1.1 +    dev: true + +  /is-core-module/2.11.0: +    resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} +    dependencies: +      has: 1.0.3 +    dev: true + +  /nanoid/3.3.4: +    resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} +    engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} +    hasBin: true +    dev: true + +  /path-parse/1.0.7: +    resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} +    dev: true + +  /picocolors/1.0.0: +    resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} +    dev: true + +  /postcss/8.4.19: +    resolution: {integrity: sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA==} +    engines: {node: ^10 || ^12 || >=14} +    dependencies: +      nanoid: 3.3.4 +      picocolors: 1.0.0 +      source-map-js: 1.0.2 +    dev: true + +  /resolve/1.22.1: +    resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} +    hasBin: true +    dependencies: +      is-core-module: 2.11.0 +      path-parse: 1.0.7 +      supports-preserve-symlinks-flag: 1.0.0 +    dev: true + +  /rollup/2.79.1: +    resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==} +    engines: {node: '>=10.0.0'} +    hasBin: true +    optionalDependencies: +      fsevents: 2.3.2 +    dev: true + +  /source-map-js/1.0.2: +    resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} +    engines: {node: '>=0.10.0'} +    dev: true + +  /supports-preserve-symlinks-flag/1.0.0: +    resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} +    engines: {node: '>= 0.4'} +    dev: true + +  /vite/3.2.4: +    resolution: {integrity: sha512-Z2X6SRAffOUYTa+sLy3NQ7nlHFU100xwanq1WDwqaiFiCe+25zdxP1TfCS5ojPV2oDDcXudHIoPnI1Z/66B7Yw==} +    engines: {node: ^14.18.0 || >=16.0.0} +    hasBin: true +    peerDependencies: +      '@types/node': '>= 14' +      less: '*' +      sass: '*' +      stylus: '*' +      sugarss: '*' +      terser: ^5.4.0 +    peerDependenciesMeta: +      '@types/node': +        optional: true +      less: +        optional: true +      sass: +        optional: true +      stylus: +        optional: true +      sugarss: +        optional: true +      terser: +        optional: true +    dependencies: +      esbuild: 0.15.15 +      postcss: 8.4.19 +      resolve: 1.22.1 +      rollup: 2.79.1 +    optionalDependencies: +      fsevents: 2.3.2 +    dev: true diff --git a/docker/crupest-nginx/sites/www/src/main.js b/docker/crupest-nginx/sites/www/src/main.js new file mode 100644 index 0000000..bbdecab --- /dev/null +++ b/docker/crupest-nginx/sites/www/src/main.js @@ -0,0 +1,83 @@ +import { Octokit } from "https://cdn.skypack.dev/octokit"; +import "./style.css"; + +const colorStripContainer = document.getElementById("color-strip-container"); + +const colorStripText = "FANCYSTRIP"; + +for (let i = 0; i < 10; i++) { +  const colorStripBlock = document.createElement("span"); + +  const hsl = `hsl(${i * 36}, 100%, 50%)`; +  colorStripBlock.classList.add("color-strip-block"); +  colorStripBlock.style.backgroundColor = hsl; +  colorStripBlock.textContent = colorStripText[i]; +  colorStripContainer.appendChild(colorStripBlock); +} + +document.addEventListener("DOMContentLoaded", async () => { +  console.log("Try to fetch GitHub project(number: 2) of crupest."); + +  const todoMessage = document.getElementById("todo-message"); +  const todoContainer = document.getElementById("todo-container"); + +  // TODO: we need another way to do this!  +  const octokit = new Octokit({ +    auth: "xxx", +  }); + +  try { +    const res = await octokit.graphql( +      ` +    { +      user(login: "crupest") { +        projectV2(number: 2) { +          items(last: 100) { +            nodes { +              __typename +              fieldValueByName(name: "Status") +              content { +                __typename +                ... on Issue { +                  title +                  closed +                } +                ... on PullRequest { +                  title +                  closed +                } +                ... on DraftIssue { +                  title +                } +              } +            } +          } +        } +      } +    } +    ` +    ); + +    const items = res.user.projectV2.items.nodes.map((node) => node.content); + +    items.forEach((item) => { +      if (item.__typename == "DraftIssue") { +        item.closed = false; +      } +      const { title, closed } = item; +      const li = document.createElement("li"); +      const span = document.createElement("span"); +      span.textContent = closed ? "Done:" : "Todo:"; +      span.style.color = closed ? "green" : "blue"; +      li.appendChild(span); +      li.append(title); +      todoContainer.appendChild(li); +    }); + +    todoMessage.parentElement.removeChild(todoMessage); +  } catch (e) { +    todoMessage.style.color = "red"; +    todoMessage.textContent = "Failed to fetch TODOs."; +    console.log("Failed to get GitHub project info.", e); +  } +}); diff --git a/docker/crupest-nginx/sites/www/src/style.css b/docker/crupest-nginx/sites/www/src/style.css new file mode 100644 index 0000000..6021c6c --- /dev/null +++ b/docker/crupest-nginx/sites/www/src/style.css @@ -0,0 +1,24 @@ +html { +  width: 100%; +} + +body { +  width: 100%; +  margin: 0; +  padding: 0 2em; +} + +#color-strip-container { +  width: 100%; +  height: 36px; +} + +.color-strip-block { +  display: inline-block; +  width: 10%; +  height: 100%; +  line-height: 36px; +  vertical-align: middle; +  text-align: center; +  color: white; +} diff --git a/site/index.html b/site/index.html deleted file mode 100644 index 1abf5a9..0000000 --- a/site/index.html +++ /dev/null @@ -1,15 +0,0 @@ -<!DOCTYPE html> -<html lang="en"> - -<head> -    <meta charset="UTF-8"> -    <meta http-equiv="X-UA-Compatible" content="IE=edge"> -    <meta name="viewport" content="width=device-width, initial-scale=1.0"> -    <title>🏠Home of crupest</title> -</head> - -<body> -    Hello world! -</body> - -</html>
\ No newline at end of file diff --git a/template/docker-compose.yaml.template b/template/docker-compose.yaml.template index 50bc8bf..3df0a18 100644 --- a/template/docker-compose.yaml.template +++ b/template/docker-compose.yaml.template @@ -54,8 +54,13 @@ services:        - code-server-network    nginx: -    image: nginx:latest -    pull_policy: always +    pull_policy: build +    build: +      context: ./docker/crupest-nginx +      dockerfile: Dockerfile +      pull: true +      tags: +        - "crupest/arch-code-server:latest"      container_name: nginx      restart: on-failure:3      ports: @@ -64,7 +69,6 @@ services:        - "443:443/udp"      volumes:        - "./nginx-config:/etc/nginx/conf.d:ro" -      - "./site:/srv/www:ro"        - "./data/certbot/certs:/etc/letsencrypt:ro"        - "./data/certbot/webroot:/srv/acme:ro"      networks: | 
