diff --git a/sql/schema.sql b/sql/schema.sql
index 386f063..a9e2538 100644
--- a/sql/schema.sql
+++ b/sql/schema.sql
@@ -265,8 +265,24 @@ INSERT INTO systems (id, name, release, short, relorder) VALUES
(212,'Debian', '11 (stable)','debian-bullseye',15),
(213,'Debian', '12 (testing)','debian-bookworm',16),
(214,'CentOS', '8.4', 'centos-8.4', 64),
- (215,'Ubuntu', '21.10', 'ubuntu-impish', 34),
- (216,'CentOS', '8.5', 'centos-8.5', 65);
+ (215,'Ubuntu', '21.10', 'ubuntu-impish', 34),
+ (216,'CentOS', '8.5', 'centos-8.5', 65),
+ (217,'Alpine Linux','3.0', 'alpine-3.0', 300),
+ (218,'Alpine Linux','3.1', 'alpine-3.1', 301),
+ (219,'Alpine Linux','3.2', 'alpine-3.2', 302),
+ (220,'Alpine Linux','3.3', 'alpine-3.3', 303),
+ (221,'Alpine Linux','3.4', 'alpine-3.4', 304),
+ (222,'Alpine Linux','3.5', 'alpine-3.5', 305),
+ (223,'Alpine Linux','3.6', 'alpine-3.6', 306),
+ (224,'Alpine Linux','3.7', 'alpine-3.7', 307),
+ (225,'Alpine Linux','3.8', 'alpine-3.8', 308),
+ (226,'Alpine Linux','3.9', 'alpine-3.9', 309),
+ (227,'Alpine Linux','3.10', 'alpine-3.10', 310),
+ (228,'Alpine Linux','3.11', 'alpine-3.11', 311),
+ (229,'Alpine Linux','3.12', 'alpine-3.12', 312),
+ (230,'Alpine Linux','3.13', 'alpine-3.13', 313),
+ (231,'Alpine Linux','3.14', 'alpine-3.14', 314),
+ (232,'Alpine Linux','3.15', 'alpine-3.15', 315);
-- Removes any path components and compression extensions from the filename.
diff --git a/util/alpine.sh b/util/alpine.sh
new file mode 100755
index 0000000..cb5fb7c
--- /dev/null
+++ b/util/alpine.sh
@@ -0,0 +1,89 @@
+#!/bin/sh
+
+. ./common.sh
+
+MIRROR=http://dl-cdn.alpinelinux.org/alpine/
+
+alp() {
+ local VER=$1
+ local REPOS=$2
+
+ for REPO in $REPOS; do
+ index alpine --sys alpine-$VER --mirror ${MIRROR}v$VER --repo $REPO
+ done
+}
+
+case "$1" in
+ 3.0)
+ alp 3.0 main
+ ;;
+ 3.1)
+ alp 3.1 main
+ ;;
+ 3.2)
+ alp 3.2 main
+ ;;
+ 3.3)
+ alp 3.3 "main community"
+ ;;
+ 3.4)
+ alp 3.4 "main community"
+ ;;
+ 3.5)
+ alp 3.5 "main community"
+ ;;
+ 3.6)
+ alp 3.6 "main community"
+ ;;
+ 3.7)
+ alp 3.7 "main community"
+ ;;
+ 3.8)
+ alp 3.8 "main community"
+ ;;
+ 3.9)
+ alp 3.9 "main community"
+ ;;
+ 3.10)
+ alp 3.10 "main community"
+ ;;
+ 3.11)
+ alp 3.11 "main community"
+ ;;
+ 3.12)
+ alp 3.12 "main community"
+ ;;
+ 3.13)
+ alp 3.13 "main community"
+ ;;
+ 3.14)
+ alp 3.14 "main community"
+ ;;
+ 3.15)
+ alp 3.15 "main community"
+ ;;
+ old)
+ $0 3.0
+ $0 3.1
+ $0 3.2
+ $0 3.3
+ $0 3.4
+ $0 3.5
+ $0 3.6
+ $0 3.7
+ $0 3.8
+ $0 3.9
+ $0 3.10
+ $0 3.11
+ ;;
+ current)
+ $0 3.12 # till 2022-05-01
+ $0 3.13 # till 2022-11-01
+ $0 3.14 # till 2023-05-01
+ $0 3.15 # till 2023-11-01
+ ;;
+ all)
+ $0 old
+ $0 current
+ ;;
+esac
diff --git a/util/cron.sh b/util/cron.sh
index 237f7d3..793d74e 100755
--- a/util/cron.sh
+++ b/util/cron.sh
@@ -3,6 +3,7 @@
PSQL="psql -U manned -Awtq"
+./alpine.sh current
./arch.sh current
./debian.sh current
./centos.sh current
diff --git a/www/index.pl b/www/index.pl
index 01bfd5b..80bd335 100755
--- a/www/index.pl
+++ b/www/index.pl
@@ -425,6 +425,12 @@ TUWF::get '/info/about' => sub {
public repositories of Linux distributions. In particular: