diff --git a/.woodpecker.yaml b/.woodpecker.yaml index 95201eb..8e3157d 100644 --- a/.woodpecker.yaml +++ b/.woodpecker.yaml @@ -1,38 +1,34 @@ -variables: - - &NODE_VERSION 20.17.0 - - &GO_VERSION 1.22.3 - - &NODE_VERSION 20.17.0 - - &HUGO_ENV: production - +--- steps: - name: build - image: node:*NODE_VERSION - environment: - NODE_VERSION: *NODE_VERSION - GO_VERSION: *GO_VERSION - NODE_VERSION: *NODE_VERSION - HUGO_ENV: *HUGO_ENV - + when: + event: [push] + image: node:20.17.0 commands: - - echo "USING NODE ${NODE_VERSION}" + - export GO_VERSION=1.22.3 + - export HUGO_VERSION=0.134.2 + - export HUGO_ENV=production - apt-get update && apt-get install -y curl - - curl -LO "https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_Linux-64bit.tar.gz" - - tar -xvf hugo_extended_${HUGO_VERSION}_Linux-64bit.tar.gz + - echo "https://github.com/gohugoio/hugo/releases/download/v$${HUGO_VERSION}/hugo_extended_$${HUGO_VERSION}_Linux-64bit.tar.gz" + - curl -LO "https://github.com/gohugoio/hugo/releases/download/v$${HUGO_VERSION}/hugo_extended_$${HUGO_VERSION}_Linux-64bit.tar.gz" + - tar -xvf hugo_extended_$${HUGO_VERSION}_Linux-64bit.tar.gz - mv hugo /usr/local/bin/ - - rm hugo_extended_${HUGO_VERSION}_Linux-64bit.tar.gz - - echo "HUGO ${HUGO_VERSION} INSTALLED" - - curl -LO "https://dl.google.com/go/go${GO_VERSION}.linux-amd64.tar.gz" - - tar -C /usr/local -xzf go${GO_VERSION}.linux-amd64.tar.gz + - rm hugo_extended_$${HUGO_VERSION}_Linux-64bit.tar.gz + - echo "HUGO $${HUGO_VERSION} INSTALLED" + - curl -LO "https://dl.google.com/go/go$${GO_VERSION}.linux-amd64.tar.gz" + - tar -C /usr/local -xzf go$${GO_VERSION}.linux-amd64.tar.gz - export PATH=$PATH:/usr/local/go/bin - - rm go${GO_VERSION}.linux-amd64.tar.gz - - echo "GO ${GO_VERSION} INSTALLED" + - rm go$${GO_VERSION}.linux-amd64.tar.gz + - echo "GO $${GO_VERSION} INSTALLED" + - npm run project-setup - npm install + - npm run build - name: deploy when: event: [push] - branch: hugoplate + branch: [hugoplate, woodpecker] image: plugins/s3 settings: bucket: chtinux @@ -42,7 +38,6 @@ steps: from_secret: chtinux_aws_access_key_id secret_key: from_secret: chtinux_aws_secret_access_key - source: ./public/ + source: public/ target: / path_style: true - diff --git a/README.md b/README.md index 1a71069..db1c41a 100644 --- a/README.md +++ b/README.md @@ -17,12 +17,15 @@ Un script python récupere l'ics de l'agenda du libre et génére les pages hugo ./recup_agenda.sh -Le script fonctionne avec python3 +Le script fonctionne avec python3, et dépend du paquet `icalendar`. -## DNS Records -DSN records were changed with the migration from linux62 to deuxfleurs +## Changing the DNS records -The DSN records with type A and IP 213.36.253.12 -Is now changed to ALIAS garage.deuxfleurs.fr` +To point the live chtinux.org site to Deuxfleurs' infrastructure (from linux62), update its DNS records in Gandi. +From: `@ A XXX.YY.ZZZ.AA` + +To: `@ ALIAS garage.deuxfleurs.fr` + +Also ensure no other CNAME points to @. diff --git a/hugo.toml b/hugo.toml index 02f24dc..4e3d181 100755 --- a/hugo.toml +++ b/hugo.toml @@ -1,194 +1,194 @@ -######################## default configuration #################### -# The base URL of your site (required). This will be prepended to all relative URLs. -baseURL = "https://chtinux.butternet.net" -# Title of your website (required). -title = "Chtinux" -# Your theme name -theme = "hugoplate" -# Default time zone for time stamps; use any valid tz database name: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List -timeZone = "Europe/Paris" -# post pagination -paginate = 10 # see https://gohugo.io/extras/pagination/ -# post excerpt -summaryLength = 10 # see https://gohugo.io/content-management/excerpts/ -# disable language -disableLanguages = ["en" -] # example: ["fr"] for disable french language. see https://gohugo.io/content-management/multilingual/ -hasCJKLanguage = false # If hasCJKLanguage true, auto-detect Chinese/Japanese/Korean Languages in the content. see: https://gohugo.io/getting-started/configuration/#hascjklanguage -# default language -defaultContentLanguage = 'fr' -# defaultContentLanguageInSubdir need to be true if you want to use the language code as a subdirectory and language specific 404 page -defaultContentLanguageInSubdir = false -uglyURLs = true -relativeURLs = true - - - - - - -[frontmatter] - expiryDate = ['expirydate', 'unpublishdate','date_evt'] - - - - - - -########################### Services ############################# -[services] -[services.googleAnalytics] -ID = 'G-MEASUREMENT_ID' # see https://gohugo.io/templates/internal/#configure-google-analytics - -[services.disqus] -shortname = 'themefisher-template' # we use disqus to show comments in blog posts . To install disqus please follow this tutorial https://portfolio.peter-baumgartner.net/2017/09/10/how-to-install-disqus-on-hugo/ - -########################## Permalinks ############################ -[permalinks.page] -"pages" = "/:slugorfilename/" - - -############################# Modules ############################ -[module] -[[module.mounts]] -source = "assets" -target = "assets" - -[[module.mounts]] -source = "hugo_stats.json" -target = "assets/watching/hugo_stats.json" - -############################# Build ############################## -[build] -noJSConfigInAssets = false -useResourceCacheWhen = 'fallback' -[build.buildStats] -enable = true -[[build.cachebusters]] -source = 'assets/watching/hugo_stats\.json' -target = 'style\.css' -[[build.cachebusters]] -source = '(postcss|tailwind)\.config\.js' -target = 'css' -[[build.cachebusters]] -source = 'assets/.*\.(js|ts|jsx|tsx)' -target = 'js' -[[build.cachebusters]] -source = 'assets/.*\.(css|scss|sass)' -target = 'css' -[[build.cachebusters]] -source = 'data/.*\.(.*)$' -target = 'css' -[[build.cachebusters]] -source = 'assets/.*\.(.*)$' -target = '$1' - - -############################# Outputs ############################ -[outputs] -home = ["HTML", "RSS", "WebAppManifest", "SearchIndex"] - -############################# Imaging ############################ -[imaging] -# See https://github.com/disintegration/imaging -# Default JPEG or WebP quality setting. Default is 75. -quality = 80 -resampleFilter = "Lanczos" - -############################ Caches ############################## -[caches] -[caches.images] -dir = ":resourceDir/_gen" -maxAge = "720h" - -[caches.assets] -dir = ":resourceDir/_gen" -maxAge = "720h" - - -############################ Markup ############################## -[markup] -[markup.goldmark.renderer] -unsafe = true - -xhtml = false - -[markup.highlight] -style = 'monokai' # see https://xyproto.github.io/splash/docs/all.html - -[markup.tableOfContents] -startLevel = 2 -endLevel = 5 -ordered = true - - -########################### Media types ########################### -[mediaTypes] -[mediaTypes."application/manifest+json"] -suffixes = ["webmanifest"] - - -########################### Output Format ########################## -[outputFormats] -[outputFormats.WebAppManifest] -mediaType = "application/manifest+json" -rel = "manifest" - -[outputFormats.SearchIndex] -mediaType = "application/json" -baseName = "searchindex" -isPlainText = true -notAlternative = true - - -############################# Plugins ############################## - -# CSS Plugins -[[params.plugins.css]] -link = "plugins/swiper/swiper-bundle.css" -lazy = true -[[params.plugins.css]] -link = "plugins/glightbox/glightbox.css" -lazy = true -[[params.plugins.css]] -link = "plugins/font-awesome/v6/brands.css" -lazy = true -[[params.plugins.css]] -link = "plugins/font-awesome/v6/solid.css" -lazy = true -[[params.plugins.css]] -link = "plugins/font-awesome/v6/icons.css" -lazy = true - -[[params.plugins.css]] -link = "plugins/font-awesome/v6/icons.css" -lazy = true - -# JS Plugins -[[params.plugins.js]] -link = "js/search.js" -lazy = false -[[params.plugins.js]] -link = "plugins/swiper/swiper-bundle.js" -lazy = false -[[params.plugins.js]] -link = "plugins/cookie.js" -lazy = false -[[params.plugins.js]] -link = "plugins/glightbox/glightbox.js" -lazy = true -[[params.plugins.js]] -link = "js/gallery-slider.js" -lazy = true -[[params.plugins.js]] -link = "js/accordion.js" -lazy = true -[[params.plugins.js]] -link = "js/tab.js" -lazy = true -[[params.plugins.js]] -link = "js/modal.js" -lazy = true -[[params.plugins.js]] -link = "plugins/youtube-lite.js" -lazy = true +######################## default configuration #################### +# The base URL of your site (required). This will be prepended to all relative URLs. +baseURL = "https://chtinux.web.deuxfleurs.fr/" +# Title of your website (required). +title = "Chtinux" +# Your theme name +theme = "hugoplate" +# Default time zone for time stamps; use any valid tz database name: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List +timeZone = "Europe/Paris" +# post pagination +paginate = 10 # see https://gohugo.io/extras/pagination/ +# post excerpt +summaryLength = 10 # see https://gohugo.io/content-management/excerpts/ +# disable language +disableLanguages = ["en" +] # example: ["fr"] for disable french language. see https://gohugo.io/content-management/multilingual/ +hasCJKLanguage = false # If hasCJKLanguage true, auto-detect Chinese/Japanese/Korean Languages in the content. see: https://gohugo.io/getting-started/configuration/#hascjklanguage +# default language +defaultContentLanguage = 'fr' +# defaultContentLanguageInSubdir need to be true if you want to use the language code as a subdirectory and language specific 404 page +defaultContentLanguageInSubdir = false +uglyURLs = true +relativeURLs = true + + + + + + +[frontmatter] + expiryDate = ['expirydate', 'unpublishdate','date_evt'] + + + + + + +########################### Services ############################# +[services] +[services.googleAnalytics] +ID = 'G-MEASUREMENT_ID' # see https://gohugo.io/templates/internal/#configure-google-analytics + +[services.disqus] +shortname = 'themefisher-template' # we use disqus to show comments in blog posts . To install disqus please follow this tutorial https://portfolio.peter-baumgartner.net/2017/09/10/how-to-install-disqus-on-hugo/ + +########################## Permalinks ############################ +[permalinks.page] +"pages" = "/:slugorfilename/" + + +############################# Modules ############################ +[module] +[[module.mounts]] +source = "assets" +target = "assets" + +[[module.mounts]] +source = "hugo_stats.json" +target = "assets/watching/hugo_stats.json" + +############################# Build ############################## +[build] +noJSConfigInAssets = false +useResourceCacheWhen = 'fallback' +[build.buildStats] +enable = true +[[build.cachebusters]] +source = 'assets/watching/hugo_stats\.json' +target = 'style\.css' +[[build.cachebusters]] +source = '(postcss|tailwind)\.config\.js' +target = 'css' +[[build.cachebusters]] +source = 'assets/.*\.(js|ts|jsx|tsx)' +target = 'js' +[[build.cachebusters]] +source = 'assets/.*\.(css|scss|sass)' +target = 'css' +[[build.cachebusters]] +source = 'data/.*\.(.*)$' +target = 'css' +[[build.cachebusters]] +source = 'assets/.*\.(.*)$' +target = '$1' + + +############################# Outputs ############################ +[outputs] +home = ["HTML", "RSS", "WebAppManifest", "SearchIndex"] + +############################# Imaging ############################ +[imaging] +# See https://github.com/disintegration/imaging +# Default JPEG or WebP quality setting. Default is 75. +quality = 80 +resampleFilter = "Lanczos" + +############################ Caches ############################## +[caches] +[caches.images] +dir = ":resourceDir/_gen" +maxAge = "720h" + +[caches.assets] +dir = ":resourceDir/_gen" +maxAge = "720h" + + +############################ Markup ############################## +[markup] +[markup.goldmark.renderer] +unsafe = true + +xhtml = false + +[markup.highlight] +style = 'monokai' # see https://xyproto.github.io/splash/docs/all.html + +[markup.tableOfContents] +startLevel = 2 +endLevel = 5 +ordered = true + + +########################### Media types ########################### +[mediaTypes] +[mediaTypes."application/manifest+json"] +suffixes = ["webmanifest"] + + +########################### Output Format ########################## +[outputFormats] +[outputFormats.WebAppManifest] +mediaType = "application/manifest+json" +rel = "manifest" + +[outputFormats.SearchIndex] +mediaType = "application/json" +baseName = "searchindex" +isPlainText = true +notAlternative = true + + +############################# Plugins ############################## + +# CSS Plugins +[[params.plugins.css]] +link = "plugins/swiper/swiper-bundle.css" +lazy = true +[[params.plugins.css]] +link = "plugins/glightbox/glightbox.css" +lazy = true +[[params.plugins.css]] +link = "plugins/font-awesome/v6/brands.css" +lazy = true +[[params.plugins.css]] +link = "plugins/font-awesome/v6/solid.css" +lazy = true +[[params.plugins.css]] +link = "plugins/font-awesome/v6/icons.css" +lazy = true + +[[params.plugins.css]] +link = "plugins/font-awesome/v6/icons.css" +lazy = true + +# JS Plugins +[[params.plugins.js]] +link = "js/search.js" +lazy = false +[[params.plugins.js]] +link = "plugins/swiper/swiper-bundle.js" +lazy = false +[[params.plugins.js]] +link = "plugins/cookie.js" +lazy = false +[[params.plugins.js]] +link = "plugins/glightbox/glightbox.js" +lazy = true +[[params.plugins.js]] +link = "js/gallery-slider.js" +lazy = true +[[params.plugins.js]] +link = "js/accordion.js" +lazy = true +[[params.plugins.js]] +link = "js/tab.js" +lazy = true +[[params.plugins.js]] +link = "js/modal.js" +lazy = true +[[params.plugins.js]] +link = "plugins/youtube-lite.js" +lazy = true diff --git a/recup_agenda.sh b/recup_agenda.sh old mode 100644 new mode 100755