Compare commits
4 Commits
cd94d82c1a
...
7aa6743501
Author | SHA1 | Date | |
---|---|---|---|
7aa6743501 | |||
b39ce4b5f7 | |||
e1613b1b9e | |||
a00d7eebfd |
2
.gitmodules
vendored
2
.gitmodules
vendored
|
@ -1,3 +1,3 @@
|
|||
[submodule "v2/themes/cupper-hugo-theme"]
|
||||
path = v2/themes/cupper-hugo-theme
|
||||
url = https://github.com/zwbetz-gh/cupper-hugo-theme.git
|
||||
url = gitea@home.hugopoi.net:hugopoi/cupper-hugo-theme.git
|
||||
|
|
|
@ -4,7 +4,7 @@ server {
|
|||
# error_log /var/log/nginx/error.log;
|
||||
# access_log /var/log/nginx/access.log;
|
||||
root /var/www/html;
|
||||
try_files $uri $uri/ /index.php /index.html;
|
||||
try_files $uri $uri/ /index.php;
|
||||
location ~ \.php$ {
|
||||
fastcgi_split_path_info ^(.+\.php)(/.+)$;
|
||||
fastcgi_pass php-fpm:9000;
|
||||
|
|
|
@ -31,7 +31,7 @@ showThemeSwitcher = true
|
|||
defaultDarkTheme = false
|
||||
moveFooterToHeader = true
|
||||
logoAlt = "An alternative text description of the logo"
|
||||
# customCss = [ "css/custom_01.css", "css/custom_02.css" ]
|
||||
customCss = [ "css/cupper-hugo-tweaks.css" ]
|
||||
# customJs = [ "js/custom_01.js", "js/custom_02.js" ]
|
||||
navTitleText = "HugoPoi's blog v2"
|
||||
|
||||
|
@ -41,16 +41,16 @@ name = "Home"
|
|||
url = "/"
|
||||
weight = 1
|
||||
|
||||
# [[menu.nav]]
|
||||
# name = "Blog"
|
||||
# url = "/post/"
|
||||
# weight = 2
|
||||
[[menu.nav]]
|
||||
name = "Blog"
|
||||
url = "/post/"
|
||||
weight = 2
|
||||
|
||||
[[menu.nav]]
|
||||
name = "How this blog is made"
|
||||
url = "/how-this-blog-is-made/"
|
||||
weight = 3
|
||||
|
||||
# [[menu.nav]]
|
||||
# name = "Tags"
|
||||
# url = "/tags/"
|
||||
# weight = 3
|
||||
#
|
||||
# [[menu.nav]]
|
||||
# name = "About"
|
||||
# url = "/about/"
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 2.3 MiB |
Binary file not shown.
After Width: | Height: | Size: 817 KiB |
Binary file not shown.
After Width: | Height: | Size: 115 KiB |
Binary file not shown.
After Width: | Height: | Size: 44 KiB |
Binary file not shown.
After Width: | Height: | Size: 11 KiB |
Binary file not shown.
After Width: | Height: | Size: 74 KiB |
142
v2/content/post/how-this-blog-is-made/index.md
Normal file
142
v2/content/post/how-this-blog-is-made/index.md
Normal file
|
@ -0,0 +1,142 @@
|
|||
---
|
||||
title: "How this blog is made, Archivarix, some PHP and Hugo"
|
||||
date: 2022-11-06T15:07:16+01:00
|
||||
draft: true
|
||||
toc: true
|
||||
tags: ["youpi"]
|
||||
---
|
||||
|
||||
## The legacy of my blog, recover with Archivarix
|
||||
|
||||
For me this year was like a rollercoaster, and I forget my blog was
|
||||
hosted on a very old Online.net Dedibox server, now called Scaleway.
|
||||
This server was in a process to be decomission and I missed the 3 emails
|
||||
annoncing the end of my services. Then Online.net decided that it was a
|
||||
good idea to also delete the backups spaces attached to these machines.
|
||||
To sumup I loose my blog and the recent backups. But I wanted to keep it
|
||||
and a least serve the existing content that was linked on search
|
||||
engines and other websites. I looked on the wayback machine and my blog
|
||||
was in it. I found a cool all-in-one service to restore an entire
|
||||
website from the Wayback machine called Archivarix, the cost was arround
|
||||
10€.
|
||||
|
||||
I recovered a 300MB zip archive with a lot of content, some
|
||||
images are missing but all the articles was there.
|
||||
|
||||
## Running the Archivarix Loader
|
||||
|
||||
Archivarix loader is a single php file using a sqlite database with all
|
||||
your urls inside and the content is stored as files in `www/.content.EZtzwPjb/binary/`.
|
||||
Each time a HTTP request is process, the script look in the database for
|
||||
a matching url and serve the content linked to it. This mini cms is
|
||||
license under GPL, and I put a copy [here](https://home.hugopoi.net/gitea/hugopoi/blog.hugopoi.net/src/branch/master/www/index.php).
|
||||
|
||||
### With docker
|
||||
|
||||
You need PHP and SQLite extension, the PHP docker image already
|
||||
contains that. I have done a small docker-compose for running
|
||||
archivarix.
|
||||
|
||||
Simple as run `docker compose up`.
|
||||
|
||||
* [docker-compose.yml](https://home.hugopoi.net/gitea/hugopoi/blog.hugopoi.net/src/branch/master/docker-compose.yml)
|
||||
<pre data-src="https://home.hugopoi.net/gitea/hugopoi/blog.hugopoi.net/raw/branch/master/docker-compose.yml" data-range="1," class="line-numbers"></pre>
|
||||
* [nginx.conf](https://home.hugopoi.net/gitea/hugopoi/blog.hugopoi.net/src/branch/master/nginx.conf)
|
||||
<pre data-src="https://home.hugopoi.net/gitea/hugopoi/blog.hugopoi.net/raw/branch/master/nginx.conf" data-range="1," class="line-numbers language-nginx"></pre>
|
||||
|
||||
{{< figureCupper
|
||||
img="Screenshot 2022-11-20 at 18-54-58 HugoPoi – Internet Hardware et Bidouille.png"
|
||||
caption="First run of my old website"
|
||||
command="Fill"
|
||||
options="1024x500 Top" >}}
|
||||
|
||||
|
||||
### With Yunohost
|
||||
|
||||
I'm mainly self-hosted with the Yunohost project, those next steps show
|
||||
you how to easily add a small php inside your Yunohost instance.
|
||||
|
||||
1. Install the application `My Webapp` inside the yunohost admin panel
|
||||
|
||||
{{< figureCupper
|
||||
img="Screenshot from 2022-11-21 18-40-13.png"
|
||||
caption="TODO"
|
||||
command="Fit"
|
||||
options="1024x500" >}}
|
||||
|
||||
1. Fill the setup form
|
||||
|
||||
{{< figureCupper
|
||||
img="Screenshot 2022-11-21 at 18-41-13 Install my_webapp _ Catalog YunoHost Admin.png"
|
||||
caption="TODO"
|
||||
command="Fill"
|
||||
options="1024x500" >}}
|
||||
|
||||
1. You have an empty app inside `/var/www/my_webapp/www/`
|
||||
|
||||
{{< figureCupper
|
||||
img="Screenshot from 2022-11-21 18-42-30.png"
|
||||
caption="TODO"
|
||||
command="Fit"
|
||||
options="1024x500" >}}
|
||||
|
||||
1. You need to copy your files, I use rsync with the yunohost admin account
|
||||
|
||||
`rsync -rlgoD --checksum --verbose www/ admin@home.hugopoi.net:/var/www/my_webapp/www/`
|
||||
|
||||
1. Then you might need to `chmod 664 /var/www/my_webapp/www/.content.*/structure.*`, Archivarix required some write access on the sqlite files.
|
||||
|
||||
|
||||
## Modding Archivarix Loader
|
||||
|
||||
### Fixing Wordpress version missing files
|
||||
|
||||
The homepage was looking good but some wordpress css and javascript assets were missing. Wordpress use a query params `?ver=`.
|
||||
|
||||
{{< figureCupper
|
||||
img="Screenshot 2022-11-20 at 18-55-57 Linky opendata my ass – HugoPoi.png"
|
||||
caption="First run of my old website, some broken css looking wrong"
|
||||
command="Fill"
|
||||
options="1024x500 Top" >}}
|
||||
|
||||
{{< figureCupper
|
||||
img="Screenshot-Firefix-debugger-404-ver-wordpress-archivarix.png"
|
||||
caption="Missing files because of the Wordpress `?ver=` query params with Archivarix"
|
||||
command="Fit"
|
||||
options="1024x500" >}}
|
||||
|
||||
So I code a little function to load any version available for a
|
||||
given url. And I take the most recent one.
|
||||
|
||||
* [`getOtherWordpressVersionUrls` function in www/index.php](https://home.hugopoi.net/gitea/hugopoi/blog.hugopoi.net/src/commit/2a154a6eea510e08b2608fd55f6729056c363b25/www/index.php#L295-L305)
|
||||
<pre data-src="https://home.hugopoi.net/gitea/hugopoi/blog.hugopoi.net/raw/commit/2a154a6eea510e08b2608fd55f6729056c363b25/www/index.php" data-range="295,305" class="line-numbers"></pre>
|
||||
|
||||
* [The call in www/index.php](https://home.hugopoi.net/gitea/hugopoi/blog.hugopoi.net/src/commit/2a154a6eea510e08b2608fd55f6729056c363b25/www/index.php#L609-L614)
|
||||
<pre data-src="https://home.hugopoi.net/gitea/hugopoi/blog.hugopoi.net/raw/commit/2a154a6eea510e08b2608fd55f6729056c363b25/www/index.php" data-range="608,620" class="line-numbers"></pre>
|
||||
|
||||
|
||||
### Cleaning existing pages
|
||||
|
||||
After successfully running my backuped blog, I wanted to mod some
|
||||
content.
|
||||
|
||||
* Replace the twitter widget
|
||||
* Replace the hoster widget
|
||||
* Add a legacy warning for visitor to redirect to the new blog
|
||||
|
||||
Archivarix has a `ARCHIVARIX_INCLUDE_CUSTOM` relying
|
||||
on regular expression to replace content but I needed a more precise approach. I used the PHP XML extension which has a DOM parser buit in and can
|
||||
parse HTML pages.
|
||||
|
||||
* [The easy config to add/replace/delete some html parts](https://home.hugopoi.net/gitea/hugopoi/blog.hugopoi.net/src/commit/cd94d82c1a3dad22b026c9c26311b366f76dcd54/www/index.php#L97-L133)
|
||||
<pre data-src="https://home.hugopoi.net/gitea/hugopoi/blog.hugopoi.net/raw/commit/cd94d82c1a3dad22b026c9c26311b366f76dcd54/www/index.php" data-range="115,134" class="line-numbers"></pre>
|
||||
* [The clever mod](https://home.hugopoi.net/gitea/hugopoi/blog.hugopoi.net/commit/598d28551d071774007172782541e1d140b8a3c1#diff-eb630ac88267e24589fd94de0826721dff38beb4)
|
||||
<pre data-src="https://home.hugopoi.net/gitea/hugopoi/blog.hugopoi.net/raw/commit/598d28551d071774007172782541e1d140b8a3c1/www/index.php" data-range="411,439" class="line-numbers"></pre>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## The new blog with Hugo
|
||||
|
||||
Go Hugo !
|
|
@ -1,38 +0,0 @@
|
|||
---
|
||||
title: "How this blog is made, Archivarix, some PHP and Hugo"
|
||||
date: 2022-11-06T15:07:16+01:00
|
||||
draft: true
|
||||
---
|
||||
|
||||
Omg first post !
|
||||
|
||||
## The legacy of my blog, recover with Archivarix
|
||||
|
||||
For me this year was like rollercoaster, and I forget that my blog was
|
||||
hosted on a very old Online.net Dedibox server, now called Scaleway.
|
||||
This server was in a process to be decomission and I missed the 3 emails
|
||||
annoncing the end of my services. Then Online.net decided that it was a
|
||||
good idea to also delete the backups spaces attached to these machines.
|
||||
To sumup I loose my blog and the recent backups. But I wanted to keep it
|
||||
and a least serve the existing content that was linked on search
|
||||
engines and other websites. I looked on the wayback machine and my blog
|
||||
was in it. I found a cool all-in-one service to restore an entire
|
||||
website from the Wayback machine called Archivarix, the cost was arround
|
||||
10€.
|
||||
|
||||
I recovered a 300MB zip archive with a lot of content, some
|
||||
images are missing but all the articles are there I think. I test it
|
||||
|
||||
## Running the Archivarix Loader
|
||||
|
||||
### With docker
|
||||
|
||||
### With Yunohost
|
||||
|
||||
## Fixing some missing files
|
||||
|
||||
## Modding Archivarix Loader
|
||||
|
||||
## The new blog with Hugo
|
||||
|
||||
Go Hugo !
|
3
v2/static/css/cupper-hugo-tweaks.css
Normal file
3
v2/static/css/cupper-hugo-tweaks.css
Normal file
|
@ -0,0 +1,3 @@
|
|||
.main-and-footer > div {
|
||||
max-width: initial;
|
||||
}
|
|
@ -1 +1 @@
|
|||
Subproject commit 4a56374eeb217c78d9fc9e3c600c899e848acf21
|
||||
Subproject commit 13d9a893d58183517c5fa45121adca1f33589e0d
|
0
www/.content.EZtzwPjb/includes/empty_tracker.html
Normal file
0
www/.content.EZtzwPjb/includes/empty_tracker.html
Normal file
|
@ -117,6 +117,10 @@ const ARCHIVARIX_INCLUDE_CUSTOM = array(
|
|||
'OPERATION' => 'REMOVE',
|
||||
'XPATH' => '//*[@id="twitter-2"]',
|
||||
],
|
||||
[
|
||||
'OPERATION' => 'REMOVE',
|
||||
'XPATH' => '//*[@id="twitter-widgets-js"]',
|
||||
],
|
||||
|
||||
// replace the hoster information widget in the right column on all pages
|
||||
[
|
||||
|
@ -131,6 +135,15 @@ const ARCHIVARIX_INCLUDE_CUSTOM = array(
|
|||
'XPATH' => '//nav[contains(@class, "navbar")]',
|
||||
'FILE' => 'warning_new_blog.php',
|
||||
],
|
||||
|
||||
// Remove Matomo tracker
|
||||
[
|
||||
'FILE' => 'empty_tracker.html',
|
||||
'KEYPHRASE' => '<!-- Matomo -->.*<!-- End Matomo Code -->',
|
||||
'LIMIT' => 1,
|
||||
'REGEX' => 1,
|
||||
'POSITION' => 0,
|
||||
],
|
||||
);
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue
Block a user