diff --git a/README.md b/README.md
index e09bf55..4366193 100644
--- a/README.md
+++ b/README.md
@@ -53,3 +53,54 @@ All commands are run from the root of the project, from a terminal:
## đź‘€ Want to learn more?
Check out [Starlight’s docs](https://starlight.astro.build/), read [the Astro documentation](https://docs.astro.build), or jump into the [Astro Discord server](https://astro.build/chat).
+
+## Todo
+
+Offer a way to collate all pages into one for PDF/printing.
+
+- https://github.com/withastro/starlight/discussions/964
+
+Additional links in navbar:
+
+- https://starlight-utils.pages.dev/utilities/nav-links/
+
+Colors:
+
+- https://github.com/withastro/starlight/blob/a1926ce87b43aaa25b9063f9776e8e4ffabed88d/packages/starlight/style/props.css#L2
+
+Quiz:
+
+
+
+
+## Test your knowledge
+
+Which of the following is a code editor, for making changes to your files and their content?
+
+
+
+ web browser
+
+
+ Terminal
+
+
+ VS Code
+
+
+
+Which of the following is a code editor, for making changes to your files and their content?
+
+
+
+ web browser
+
+
+ Terminal
+
+
+ VS Code
+
+
+
+
diff --git a/astro.config.mjs b/astro.config.mjs
index 8e8b3d8..db08fe7 100644
--- a/astro.config.mjs
+++ b/astro.config.mjs
@@ -17,29 +17,8 @@ export default defineConfig({
sidebar: [
{
label: "ISPmail for Debian 12",
- items: [
- // Each item here is one entry in the navigation menu.
- {
- label: "Start Here",
- slug: "ispmail-bookworm",
- },
- {
- label: "Whats' new",
- slug: "ispmail-bookworm/whats-new",
- },
- {
- label: "Migrating your old server",
- slug: "ispmail-bookworm/migrating-from-a-bullseye-to-a-bookworm-server",
- },
- {
- label: "The big picture",
- slug: "ispmail-bookworm/big-picture",
- },
- {
- label: "Types of email domains",
- slug: "ispmail-bookworm/types-of-email-domains",
- },
- ],
+ // slug: "ispmail-bookworm",
+ autogenerate: { directory: "ispmail-debian-12" },
},
// {
// label: "Reference",
diff --git a/src/components/Box.astro b/src/components/Box.astro
new file mode 100644
index 0000000..79ac393
--- /dev/null
+++ b/src/components/Box.astro
@@ -0,0 +1,79 @@
+---
+import { getImage } from "astro:assets";
+import HoustonGrad from "~/assets/houston_grad.png";
+
+export interface Props {
+ icon?: "puzzle-piece" | "question-mark" | "check-list";
+}
+
+const { icon } = Astro.props;
+---
+
+
+
+
+
+
+
+
diff --git a/src/components/Checklist.astro b/src/components/Checklist.astro
new file mode 100644
index 0000000..82c85c7
--- /dev/null
+++ b/src/components/Checklist.astro
@@ -0,0 +1,108 @@
+
+{
+ Astro.slots.has('alternative') && (
+ <>
+
+ foo
+
+
+
+
+ >
+ )
+}
+
+
diff --git a/src/components/Footer.astro b/src/components/Footer.astro
index f2b1f60..cf9e51e 100644
--- a/src/components/Footer.astro
+++ b/src/components/Footer.astro
@@ -6,7 +6,7 @@ import Default from "@astrojs/starlight/components/Footer.astro";
diff --git a/src/components/MultipleChoice.astro b/src/components/MultipleChoice.astro
new file mode 100644
index 0000000..f9fe64a
--- /dev/null
+++ b/src/components/MultipleChoice.astro
@@ -0,0 +1,167 @@
+
+
+
+
+
+
+
diff --git a/src/components/Option.astro b/src/components/Option.astro
new file mode 100644
index 0000000..eb7c2ee
--- /dev/null
+++ b/src/components/Option.astro
@@ -0,0 +1,87 @@
+---
+export interface Props {
+ isCorrect?: boolean;
+}
+
+const { isCorrect } = Astro.props as Props;
+---
+
+
+
+
+ {
+ Astro.slots.has('feedback') && (
+
+
+
+ )
+ }
+
+
+
+
diff --git a/src/components/UIString.astro b/src/components/UIString.astro
new file mode 100644
index 0000000..c28edfb
--- /dev/null
+++ b/src/components/UIString.astro
@@ -0,0 +1,10 @@
+---
+import type { UIDictionaryKeys } from '../i18n/translation-checkers';
+import { useTranslations } from '../i18n/util';
+
+export interface Props {
+ key: UIDictionaryKeys;
+}
+---
+
+{useTranslations(Astro)(Astro.props.key)}
diff --git a/src/content/docs/ispmail-bookworm/index.md b/src/content/docs/ispmail-debian-12/01-start.md
similarity index 99%
rename from src/content/docs/ispmail-bookworm/index.md
rename to src/content/docs/ispmail-debian-12/01-start.md
index d505ceb..4caa508 100644
--- a/src/content/docs/ispmail-bookworm/index.md
+++ b/src/content/docs/ispmail-debian-12/01-start.md
@@ -1,6 +1,7 @@
---
title: ISPmail guide for Debian 12 “Bookworm”
lastUpdated: 2023-09-24
+slug: ispmail-bookworm
---
Once upon a time there were many mail servers on the internet. If your organisation wanted to receive and send emails then you would have your system administrator set up a mail server. He would add a DNS record and create a cryptic Sendmail configuration file.
diff --git a/src/content/docs/ispmail-bookworm/whats-new.md b/src/content/docs/ispmail-debian-12/02-whats-new.md
similarity index 100%
rename from src/content/docs/ispmail-bookworm/whats-new.md
rename to src/content/docs/ispmail-debian-12/02-whats-new.md
diff --git a/src/content/docs/ispmail-bookworm/big-picture.md b/src/content/docs/ispmail-debian-12/big-picture.md
similarity index 100%
rename from src/content/docs/ispmail-bookworm/big-picture.md
rename to src/content/docs/ispmail-debian-12/big-picture.md
diff --git a/src/content/docs/ispmail-bookworm/migrating-from-a-bullseye-to-a-bookworm-server.md b/src/content/docs/ispmail-debian-12/migrating-from-a-bullseye-to-a-bookworm-server.mdx
similarity index 95%
rename from src/content/docs/ispmail-bookworm/migrating-from-a-bullseye-to-a-bookworm-server.md
rename to src/content/docs/ispmail-debian-12/migrating-from-a-bullseye-to-a-bookworm-server.mdx
index 8e6de58..be12f33 100644
--- a/src/content/docs/ispmail-bookworm/migrating-from-a-bullseye-to-a-bookworm-server.md
+++ b/src/content/docs/ispmail-debian-12/migrating-from-a-bullseye-to-a-bookworm-server.mdx
@@ -2,6 +2,12 @@
title: Migrating from your old (Bullseye) server
---
+import MultipleChoice from '../../../components/MultipleChoice.astro';
+import Option from '../../../components/Option.astro';
+import Checklist from '../../../components/Checklist.astro';
+import Box from '../../../components/Box.astro';
+
+
## Upgrade or fresh installation?
I recommend that you set up a new server and make sure that the new mail server is working correctly before you start migrating existing email users to it. You may argue that Debian can be upgraded easily using “apt-get dist-upgrade” but that is very dangerous on a live mail server. Automatic configuration changes may have evil side effects and you risk losing emails. At least you are causing a downtime for your users.
@@ -24,12 +30,12 @@ The DNS “MX” record for your domain contains the hostname of your mail serve
You need to copy the database that contains the control data about your email domains and accounts. Log into the old (Bullseye) server as root and back up the _mailserver_ database. That is as easy as running…
-```sh
+```
mysqldump mailserver > mailserver.sql
```
Copy that file to the new server (using _scp_) and import it there:
-```sh
+```
mysql mailserver < mailserver.sql
```
@@ -39,13 +45,13 @@ Obviously any database changes on the old server from now on will have to be don
If your users are using Roundcube as a webmail interface then you should migrate their data like their contact lists. Dump the SQL from the old server:
-```sh
+```
mysqldump roundcube > roundcube.sql
```
Copy that file to the new server and import it:
-```sh
+```
mysql roundcube < roundcube.sql
```
@@ -63,7 +69,7 @@ If you have been using rspamd with the Redis backend then copy over the Redis da
Fortunately Dovecot uses the maildir format that stores emails as plain files on disk. Login to the new (Bookworm) server and use _rsync_ to copy over the mails from the old (Bullseye) mail server:
-```sh
+```
rsync -va oldserver:/var/vmail/ /var/vmail/
```
@@ -75,7 +81,7 @@ There is no need to shut down Dovecot on your production Bullseye server. Copyin
Copy over everything in /etc/letsencrypt and /var/lib/rspamd/dkim from your old to the new server.
-```sh
+```
rsync -va oldserver:/etc/letsencrypt/ /etc/letsencrypt/
rsync -va oldserver:/var/lib/rspamd/dkim/ /var/lib/rspamd/dkim/
```
@@ -88,7 +94,7 @@ You told your users about the downtime, right? The time has come? Okay. Shut dow
Let’s synchronize again. _rsync_ will only copy those files that have changed which makes it much faster than the first sync. On your new server run:
-```sh
+```
rsync -va --delete oldserver:/var/vmail/ /var/vmail/
```
@@ -96,7 +102,7 @@ rsync -va --delete oldserver:/var/vmail/ /var/vmail/
The new Dovecot version uses a slightly different indexing mechanism. So force rebuilding the users’ indices:
-```sh
+```
doveadm force-resync -A '*'
```
@@ -108,7 +114,7 @@ For all your domains you will have to change the DNS “MX” or “A” record
Accidents happen. And you don’t want to lose emails. So run this command to enable your safety net on the new server:
-```sh
+```
postconf soft_bounce=yes
```
@@ -116,7 +122,7 @@ This makes Postfix always keep emails in the queue that it would otherwise rejec
Once you are certain that emails are properly received and sent you can switch off the _soft_bounce_ mode again:
-```sh
+```
postconf soft_bounce=no
```
diff --git a/src/content/docs/ispmail-bookworm/types-of-email-domains.mdx b/src/content/docs/ispmail-debian-12/types-of-email-domains.mdx
similarity index 100%
rename from src/content/docs/ispmail-bookworm/types-of-email-domains.mdx
rename to src/content/docs/ispmail-debian-12/types-of-email-domains.mdx