diff --git a/assets/2400.png b/assets/2400.png
new file mode 100644
index 0000000..8445ce4
Binary files /dev/null and b/assets/2400.png differ
diff --git a/download.json b/download.json
new file mode 100644
index 0000000..82c7b28
--- /dev/null
+++ b/download.json
@@ -0,0 +1,3 @@
+{
+ "title": "24.00"
+}
diff --git a/download.md b/download.md
new file mode 100644
index 0000000..3418317
--- /dev/null
+++ b/download.md
@@ -0,0 +1,18 @@
+For installation instructions, please [see the wiki](/wiki).
+
+Signatures can be verified using `gpg`. To do so, download the maintainer's key:
+```
+$ gpg --receive-keys F9E70878C2FB389AEC2BA34CA3654DF5AD9F641D
+```
+Then use the `--verify` option to verify the signature:
+```
+$ gpg --verify /path/to/signature.sig
+```
+
+## Release Dates
+To learn more about releases see the [wiki page for releases](/wiki/release).
+
+| Version | Release Date | EOL |
+| -------------- | ------------ | ------- |
+| MatterLinux 24 | 01/2024 | 01/2025 |
+| MatterLinux 25 | 01/2025 | ??/???? |
diff --git a/index.md b/index.md
index 4abfbbc..e0f500d 100644
--- a/index.md
+++ b/index.md
@@ -12,18 +12,21 @@ scratch. So the project is not based on any other distribution, nor it's package
Currently MatterLinux is under development, here is a rough roadmap if you want to
follow the development of the project:
-- [+] Package system
-- [+] Website
-- [+] Official repos (`base` and `desktop`)
-- [>] Wiki/documentation
-- [>] First release
-- [x] Expanding `desktop` repo (100 packages)
+
+ - >>> Package system
+ - >>> Website
+ - >>> Official repos (
base
and desktop
)
+ - >>> Wiki/documentation
+ - >>> First release
+ - >>> Expanding
desktop
repo (100 packages)
+ - >>> Expanding the wiki
+
## Contributing
Currently active contributors are:
-- (Maintainer) [ngn](mailto:ngn13proton@proton.me)
+- (Maintainer) ngn | [Email](mailto:ngn@ngn.tf) [PGP](https://keys.openpgp.org/pks/lookup?op=get&options=mr&search=0xF9E70878C2FB389AEC2BA34CA3654DF5AD9F641D)
Consider helping out if you are interested in this project.
To do so, check out the [contribution guide](/wiki/contribute). If have any questions/problems
-feel free to join the [chat rooms](/wiki/chat) and ask questions you have to the maintainer/developers.
+feel free to join the [chat rooms](/wiki/chat) and ask them to the maintainer/developers.
diff --git a/news/24.json b/news/24.json
new file mode 100644
index 0000000..f939e4e
--- /dev/null
+++ b/news/24.json
@@ -0,0 +1,6 @@
+{
+ "id": "rel24",
+ "title": "First release!",
+ "date": "19/01/24",
+ "author": "ngn"
+}
diff --git a/news/24.md b/news/24.md
new file mode 100644
index 0000000..e133d07
--- /dev/null
+++ b/news/24.md
@@ -0,0 +1,45 @@
+After longs hours of improvements and testing latter, the first release is finally here.
+There was also bunch of other development in this 12 day period. So lets go over it.
+
+## MatterLinux 24.00
+![](/assets/2400.png)
+
+With the 24.00 release, MatterLinux now has an official ISO and a release archive.
+I also published the installation guide over on the wiki. This means you can install
+MatterLinux right now! Of course, as of now, the repos are really limited, so it's
+not ready for daily usage, not quite yet.
+
+## Package Tracker
+MatterLinux now has a [custom package tracker](https://tracker.matterlinux.xyz/)!
+It's written in Go, like the web server. It doesn't have a lot of functionality,
+but it provides an easy interface for finding and tracking packages.
+
+## New tools!
+The [tools](https://git.matterlinux.xyz/Matter/tools) repository is extended with
+the addition of the `matter-iso` script, which just a simple script that you can use
+to build custom ISO images. The configuration for the official ISO images can be
+find in the [iso](https://git.matterlinux.xyz/Matter/iso) repository. It actually took
+surprisingly long time to get the ISO to work, kernel was somehow unable to find
+the `init` program. I tried fixing that by supplying the `init=` parameter, which
+didn't work so I just went ahead with the lazy option and `init` over to `/`.
+
+## Little Improvements
+Apart from these, I also made quite a few improvements to the website, packages, infrastructure
+and to the package manager:
+
+- I reworked the CSS for the website (especially for the markdown content). I think
+it's now easier to read and overall looks cleaner.
+- I added the `mp-query` command to the package manager, which lets you get information
+about a specific package in a nicely formatted way.
+- Fixed compile flags for few packages, including `grub`, which was really unstable as
+it was being compiled with optimization flags.
+- XMPP room moved from jabbers.one to a self hosted server (located at matterlinux.xyz)
+- Git server moved from [Gogs](https://gogs.io/) to [Gitea](https://about.gitea.com/)
+
+## What's Next?
+I will be on a vacation for a couple of weeks and I also have other projects to work
+on so I will be taking a break from the project. When I come back I will be extending the
+`desktop` repo, and hopefully when I make the next post, there will be working
+display server in the repo.
+
+That will be all for now, see you in the next post!
diff --git a/wiki/install/install.json b/wiki/install/install.json
new file mode 100644
index 0000000..a546171
--- /dev/null
+++ b/wiki/install/install.json
@@ -0,0 +1,6 @@
+{
+ "id": "install",
+ "title": "Installation",
+ "author": "ngn",
+ "date": "17/01/24"
+}
diff --git a/wiki/install/install.md b/wiki/install/install.md
new file mode 100644
index 0000000..6a9d879
--- /dev/null
+++ b/wiki/install/install.md
@@ -0,0 +1,179 @@
+This guide for installing MatterLinux 24 assumes you are in a live USB/CD/DVD environment. If you are not, then
+see the [introduction page](/wiki/intro).
+
+# Loading keys for the ISO
+If you are using the MatterLinux ISO for the installation, you should load your key map to make
+it easier to work in the TTY. All the available key maps can be listed with:
+```
+# localectl list-keymaps
+```
+To load a key map, you can use the `loadkeys` command, for example:
+```
+# loadkeys tr_q-latin5
+```
+
+# Setting up the Installation Disk
+During the installation, the installation disk will be referred as `$DISK`. In order to
+copy paste commands easily, you can set this as an environment variable:
+```
+# export DISK=/dev/sda
+```
+If you are not sure which disk is your installation disk, you can use the `lsblk` command.
+
+**Please note that the installation will wipe your entire drive, so backup any important data you may have.**
+
+### Creating partitions
+You can use the `fdisk` tool to format your disk:
+```
+# fdisk $DISK
+```
+Here are the simple commands in `fdisk`:
+- `d`: Delete the last partition
+- `n`: Create a new partition
+- `w`: Save the changes
+
+If you have old partitions left on the disk, clean them with the `d` command.
+
+For this guide we will be using two separate partitions for `/boot` and `/`. So after removing
+old partitions create 2 new partitions with the `n` command:
+
+- For the first partition hit enter till you see the `Last Sector` input. Here type `+1G`. You can
+make your `/boot` partition larger or smaller if you wish.
+- For the second partition, just hit enter for all the inputs to use the rest of the disk.
+
+When you are done save the changes with `w`.
+
+### Formatting the partitions
+Now you should have 2 new partitions. You can confirm this using the `lsblk` command:
+```
+# lsblk $DISK
+```
+We will refer these partitions as `$BOOT` and `$ROOT`:
+```
+# export BOOT=${DISK}1
+# export ROOT=${DISK}2
+```
+
+We will be formatting `$BOOT` and `$ROOT` with EXT4. You can really use any file system.
+
+> **Important**
+>
+> You should use FAT32 for `$BOOT` if you are doing an UEFI installation.
+
+To format the partitions as described above:
+```
+# mkfs.ext4 $BOOT
+# mkfs.ext4 $ROOT
+```
+
+### Mounting
+Mount the `$ROOT` partition to `/mnt`, and the `$BOOT` partition to `/mnt/boot`:
+```
+# mount $ROOT /mnt
+# mount --mkdir $BOOT /mnt/boot
+```
+
+# Installing the base system
+[Download and verify the latest release archive](/download). This can be done using the
+`curl` and the `gpg` tool.
+
+After downloading and verifying the archive extract it to the `/mnt` directory:
+```
+# tar xvf -C /mnt
+```
+
+### Package Manager Configuration
+Copy over the `mp` configuration to the new system:
+```
+# cp /etc/mp/cfg /mnt/etc/mp/cfg
+```
+
+### Change Root
+To change root (`chroot`) into the new system, you can use the `matter-chroot` tool, which is a part of [MatterLinux `tools`
+project](https://git.matterlinux.xyz/Matter/tools):
+```
+# matter-chroot /mnt
+```
+
+### Setup Timezone
+Link `/etc/localtime` to your localtime zone. Timezones are located under
+`/usr/share/zoneinfo`. For example:
+```
+# ln -sf /usr/share/zoneinfo/Europe/Istanbul /etc/localtime
+```
+
+
+### Installing Important Packages
+After changing root, you can now start installing other base system packages that are not included in the release archive.
+But first thing first, sync all the packages and add the repo public keys:
+```
+# mp-sync
+# gpg --receive-keys F9E70878C2FB389AEC2BA34CA3654DF5AD9F641D
+```
+
+Now it is time to install packages. You should install `systemd` and `dhcpcd`:
+```
+# mp-install systemd dhcpcd
+```
+You should also run this `systemctl` command after installation:
+```
+# systemctl preset-all
+```
+
+### Host name and fstab
+Enter your host name into `/etc/hostname` using a text editor like `vim` or `nano`.
+Then configure the `/etc/fstab`, again, using the text editor of your choice:
+```
+# device | mount-point | file system | options | dump | fsck
+# ======== | =========== | =========== | ========== | ===== | =======
+$ROOT / ext4 defaults 1 1
+$BOOT /boot ext4 defaults 0 0
+```
+Change the configuration accordingly.
+
+### Changing the Root Password
+Change your root password:
+```
+# passwd
+```
+
+### Installing the kernel
+Install the linux kernel with `mp`:
+```
+# mp-install linux
+```
+Verify the installation:
+```
+# ls -la /boot/vmlinuz-linux
+```
+
+# Installing GRUB
+For the grub BIOS installation, install the `grub-bios` package:
+```
+# mp-install grub-bios
+```
+
+> **Important**
+>
+> For the grub UEFI installation, install the `grub-efi` package
+> instead of `grub-bios`
+
+### Installation and Configuration
+To install grub to your boot partition, run:
+```
+# grub-install $DISK
+```
+
+To auto generate grub configuration, run:
+```
+# grub-mkconfig -o /boot/grub/grub.cfg
+```
+
+# Cleanup and Reboot
+Exit the `chroot` environment and `umount` all the disks:
+```
+# umount $BOOT
+# umount $ROOT
+```
+Now reboot your system and boot from the installation disk. Login with as root with your password.
+Congratulations, you have just installed MatterLinux!
diff --git a/wiki/intro.json b/wiki/install/intro.json
similarity index 100%
rename from wiki/intro.json
rename to wiki/install/intro.json
diff --git a/wiki/intro.md b/wiki/install/intro.md
similarity index 81%
rename from wiki/intro.md
rename to wiki/install/intro.md
index 37487ec..8b19763 100644
--- a/wiki/intro.md
+++ b/wiki/install/intro.md
@@ -15,7 +15,8 @@ build tools and scripts. It supports all `amd64` (`x86_64`) systems.
## Can I install MatterLinux?
MatterLinux is a distribution designed for GNU/Linux "enthusiasts". So if you
are new to GNU/Linux, and not sure what you are doing, then you should probably
-look for another distribution.
+look for another distribution as the installation guide pretty much assumes that
+you are familiar with GNU/Linux commands and configuration in general.
Currently it's not really possible to daily drive MatterLinux as it doesn't have
a lot of packages that you may need. Yeah, you can install it, but you cannot get
@@ -29,14 +30,16 @@ Preferably, do the installation in virtual machine. Provide the virtual machine
10G disk space, 1GB memory and 1 CPU. You should also have a working internet connection.
To complete the installation you need to boot from a live GNU/Linux USB/CD/DVD. To create a
-live GNU/Linux USB/CD, you will need a GNU/Linux ISO. MatterLinux do provide ISOs for
+live GNU/Linux USB/CD/DVD, you will need a GNU/Linux ISO. MatterLinux do provide ISOs for
installation but you can really use any GNU/Linux ISO you want.
-**Note for bare metal installation:** MatterLinux ISO do **NOT** support wireless connection.
+> **Note for bare metal installation**
+>
+> MatterLinux ISO do **NOT** support wireless connection.
To burn the ISO to your USB/CD/DVD, you can use the `dd` command:
```
-# dd if=[path to ISO] of=/dev/[name of the device] bs=8M status=progress
+# dd if= of=/dev/ bs=8M status=progress
```
## I booted from the ISO, now what?
diff --git a/wiki/install/post.json b/wiki/install/post.json
new file mode 100644
index 0000000..e15c264
--- /dev/null
+++ b/wiki/install/post.json
@@ -0,0 +1,6 @@
+{
+ "id": "post_install",
+ "title": "Post-Installation",
+ "author": "ngn",
+ "date": "19/01/24"
+}
diff --git a/wiki/install/post.md b/wiki/install/post.md
new file mode 100644
index 0000000..12255d8
--- /dev/null
+++ b/wiki/install/post.md
@@ -0,0 +1,23 @@
+To make your system more usable, you may want to install and configure extra packages.
+
+> **Note**
+>
+> Currently MatterLinux has limited amount of packages, so there are lots of
+> missing packages that some users may consider essential, such as a display server.
+> If you want more packages, consider [contributing](/wiki/contribute).
+
+## Adding New Users
+You can add new users using the `useradd` command, for example:
+```
+# useradd -m ngn
+```
+
+## Installing OpenSSH
+For remote access to your system, you can install OpenSSH server:
+```
+# mp-install openssh
+```
+You can enable root login, by editing `/etc/ssh/sshd_config`:
+```
+PermitRootLogin yes
+```
diff --git a/wiki/main.md b/wiki/main.md
index 7221a0d..49feae9 100644
--- a/wiki/main.md
+++ b/wiki/main.md
@@ -5,12 +5,11 @@ edit a page or create a new page, make a [pull request](/wiki/contribute) to [co
don't have a link yet.
## Installation
-| Name | Description |
-| --------------------------- | ----------------------------------------------- |
-| [Introduction](/wiki/intro) | Learn about MatterLinux and other general stuff |
-| Installation | Learn how to install a base MatterLinux system |
-| Installation (Any% Edition) | Speedrunner edition of the Installation page |
-| Post-Installation | Make your system (somewhat) usable |
+| Name | Description |
+| --------------------------------------- | ----------------------------------------------- |
+| [Introduction](/wiki/intro) | Learn about MatterLinux and other general stuff |
+| [Installation](/wiki/install) | Learn how to install a base MatterLinux system |
+| [Post-Installation](/wiki/post_install) | Make your system (somewhat) usable |
## Packaging
| Name | Description |
diff --git a/wiki/chat.json b/wiki/other/chat.json
similarity index 100%
rename from wiki/chat.json
rename to wiki/other/chat.json
diff --git a/wiki/chat.md b/wiki/other/chat.md
similarity index 100%
rename from wiki/chat.md
rename to wiki/other/chat.md
diff --git a/wiki/conduct.json b/wiki/other/conduct.json
similarity index 100%
rename from wiki/conduct.json
rename to wiki/other/conduct.json
diff --git a/wiki/conduct.md b/wiki/other/conduct.md
similarity index 100%
rename from wiki/conduct.md
rename to wiki/other/conduct.md
diff --git a/wiki/contribute.json b/wiki/other/contribute.json
similarity index 100%
rename from wiki/contribute.json
rename to wiki/other/contribute.json
diff --git a/wiki/contribute.md b/wiki/other/contribute.md
similarity index 100%
rename from wiki/contribute.md
rename to wiki/other/contribute.md
diff --git a/wiki/licensing.json b/wiki/other/licensing.json
similarity index 100%
rename from wiki/licensing.json
rename to wiki/other/licensing.json
diff --git a/wiki/licensing.md b/wiki/other/licensing.md
similarity index 100%
rename from wiki/licensing.md
rename to wiki/other/licensing.md
diff --git a/wiki/mirrors.json b/wiki/pkg/mirrors.json
similarity index 100%
rename from wiki/mirrors.json
rename to wiki/pkg/mirrors.json
diff --git a/wiki/mirrors.md b/wiki/pkg/mirrors.md
similarity index 77%
rename from wiki/mirrors.md
rename to wiki/pkg/mirrors.md
index 924fa70..b9f285f 100644
--- a/wiki/mirrors.md
+++ b/wiki/pkg/mirrors.md
@@ -6,7 +6,7 @@ configuration file (`/etc/mp/cfg`).
### Creating a mirror
To create a mirror you can use the `matter-mirror` tool. This tool is included
-with the `matter-tools` repository. To install it [see the project READMDE](https://git.matterlinux.xyz/Matter/matter-tools#installation).
+with the `tools` repository. To install it [see the project READMDE](https://git.matterlinux.xyz/Matter/tools#installation).
After installing `matter-mirror`, specify an URI and an output directory (files will be downloaded
into the output directory). For example to mirror the `base` repo from
@@ -23,17 +23,19 @@ You will mostly likely want to update your mirror every once in a while. To do s
create a cron job. For example to update your mirror every day at 00:00, you can add the
following entry to your `/etc/crontab`:
```
-0 0 * * * matter-mirror -u -o