-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
About
+
+ All the images come with a single root partition, and use UFS/FFS
+ filesystem.
+
+
+ NetBSD will resize the root partition during the first boot.
+
+
+ OpenBSD is provided with a script
+ (/root/bin/create_partitions.sh
) to adapt the partition
+ layout after the first boot. The games and X server sets are not
+ installed to keep the image minimal.
+
+
+ In order to be consistent with Cloud-Init, sudo is enabled by default.
+ On OpenBSD, doas is still available and just need to be configured.
+
+
+ Finally, the serial console is enabled by default.
+
+
+ This images use Cloud-Init master, which supports NetBSD and OpenBSD,
+ see:
+ #62 ,
+ #147 .
+
+
+ The scripts used to build the images are listed below:
+
+
+
+ FreeBSD
+
+
+ NetBSD
+
+
+ OpenBSD
+
+
+
+
-
+
+
+
+
A collection of prebuilt BSD cloud images
+
+ These unofficial images are tested on OpenStack and NoCloud (with Virt-Lightning ). They come with
+ Cloud-init ,
+ and so they should support all the main Cloud providers.
+
+
+
+
+
+
diff --git a/src/components/Image.vue b/src/components/Image.vue
new file mode 100644
index 0000000..d5bf114
--- /dev/null
+++ b/src/components/Image.vue
@@ -0,0 +1,9 @@
+
+
+
+ {{ flavor_name }}
+
+
+
diff --git a/src/components/OperatingSystem.vue b/src/components/OperatingSystem.vue
new file mode 100644
index 0000000..a5699ed
--- /dev/null
+++ b/src/components/OperatingSystem.vue
@@ -0,0 +1,51 @@
+
+
+
+
+
+
{{ prettifyName(os_name) }}
+
+
+
+
+
+
+
+
diff --git a/src/components/Version.vue b/src/components/Version.vue
new file mode 100644
index 0000000..8b21c9e
--- /dev/null
+++ b/src/components/Version.vue
@@ -0,0 +1,80 @@
+
+
+
+
+ {{ version_name }}
+
+
+
+
+
+
+
+
+
+ Please select the filesystem of the root partition.
+
+
+
+
+
+
+
+
diff --git a/src/images_data.json b/src/images_data.json
new file mode 100644
index 0000000..378fbbc
--- /dev/null
+++ b/src/images_data.json
@@ -0,0 +1,110 @@
+[
+ {
+ "name": "freebsd",
+ "versions": [
+ {
+ "name": "13.4",
+ "images": [
+ {
+ "flavor": "UFS",
+ "url": "https://object-storage.public.mtl1.vexxhost.net/swift/v1/1dbafeefbd4f4c80864414a441e72dd2/bsd-cloud-image.org/images/freebsd/13.4/2024-10-28/ufs/freebsd-13.4-ufs-2024-10-28.qcow2"
+ },
+ {
+ "flavor": "ZFS",
+ "url": "https://object-storage.public.mtl1.vexxhost.net/swift/v1/1dbafeefbd4f4c80864414a441e72dd2/bsd-cloud-image.org/images/freebsd/13.4/2024-10-28/zfs/freebsd-13.4-zfs-2024-10-28.qcow2"
+ }
+ ]
+ },
+ {
+ "name": "14.1",
+ "images": [
+ {
+ "flavor": "UFS",
+ "url": "https://object-storage.public.mtl1.vexxhost.net/swift/v1/1dbafeefbd4f4c80864414a441e72dd2/bsd-cloud-image.org/images/freebsd/14.1/2024-10-28/ufs/freebsd-14.1-ufs-2024-10-28.qcow2"
+ },
+ {
+ "flavor": "ZFS",
+ "url": "https://object-storage.public.mtl1.vexxhost.net/swift/v1/1dbafeefbd4f4c80864414a441e72dd2/bsd-cloud-image.org/images/freebsd/14.1/2024-10-28/zfs/freebsd-14.1-zfs-2024-10-28.qcow2"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "netbsd",
+ "versions": [
+ {
+ "name": "8.2",
+ "images": [
+ {
+ "flavor": "UFS",
+ "url": "https://object-storage.public.mtl1.vexxhost.net/swift/v1/1dbafeefbd4f4c80864414a441e72dd2/bsd-cloud-image.org/images/netbsd/8.2/netbsd-8.2.qcow2"
+ }
+ ]
+ },
+ {
+ "name": "9.4",
+ "images": [
+ {
+ "flavor": "UFS",
+ "url": "https://object-storage.public.mtl1.vexxhost.net/swift/v1/1dbafeefbd4f4c80864414a441e72dd2/bsd-cloud-image.org/images/netbsd/9.4/2024-11-02/ufs/netbsd-9.4-2024-11-02.qcow2"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "openbsd",
+ "versions": [
+ {
+ "name": "7.5",
+ "images": [
+ {
+ "flavor": "UFS",
+ "url": "https://github.com/hcartiaux/openbsd-cloud-image/releases/download/v7.5_2024-05-13-15-25/openbsd-min.qcow2"
+ }
+ ]
+ },
+ {
+ "name": "7.6",
+ "images": [
+ {
+ "flavor": "UFS",
+ "url": "https://github.com/hcartiaux/openbsd-cloud-image/releases/download/v7.6_2024-10-08-22-40/openbsd-min.qcow2"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "dragonflybsd",
+ "versions": [
+ {
+ "name": "6.2.2",
+ "images": [
+ {
+ "flavor": "UFS",
+ "url": "https://object-storage.public.mtl1.vexxhost.net/swift/v1/1dbafeefbd4f4c80864414a441e72dd2/bsd-cloud-image.org/images/dragonflybsd/6.2.2/2022-09-06/ufs/dragonflybsd-6.2.2-ufs-2022-09-06.qcow2"
+ },
+ {
+ "flavor": "Hammer2",
+ "url": "https://object-storage.public.mtl1.vexxhost.net/swift/v1/1dbafeefbd4f4c80864414a441e72dd2/bsd-cloud-image.org/images/dragonflybsd/6.2.2/2022-09-06/hammer2/dragonflybsd-6.2.2-hammer2-2022-09-06.qcow2"
+ }
+ ]
+ },
+ {
+ "name": "6.4.0",
+ "images": [
+ {
+ "flavor": "UFS",
+ "url": "https://object-storage.public.mtl1.vexxhost.net/swift/v1/1dbafeefbd4f4c80864414a441e72dd2/bsd-cloud-image.org/images/dragonflybsd/6.4.0/2023-04-23/ufs/dragonflybsd-6.4.0-ufs-2023-04-23.qcow2"
+ },
+ {
+ "flavor": "Hammer2",
+ "url": "https://object-storage.public.mtl1.vexxhost.net/swift/v1/1dbafeefbd4f4c80864414a441e72dd2/bsd-cloud-image.org/images/dragonflybsd/6.4.0/2023-04-23/hammer2/dragonflybsd-6.4.0-hammer2-2023-04-23.qcow2"
+ }
+ ]
+ }
+ ]
+ }
+]
diff --git a/src/interfaces.ts b/src/interfaces.ts
new file mode 100644
index 0000000..438adbd
--- /dev/null
+++ b/src/interfaces.ts
@@ -0,0 +1,15 @@
+export interface ImagesDefType {
+ flavor: string;
+ url: string;
+}
+
+export interface VersionDefType {
+ name: string;
+ images: ImagesDefType[];
+}
+
+//@ts-ignore
+export interface OSDefType {
+ name: string;
+ versions: VersionDefType[];
+}
diff --git a/src/main.ts b/src/main.ts
index 2425c0f..cfbbeaf 100644
--- a/src/main.ts
+++ b/src/main.ts
@@ -1,5 +1,8 @@
-import { createApp } from 'vue'
-import './style.css'
-import App from './App.vue'
+import { createApp } from "vue";
+import "bootstrap/scss/bootstrap.scss";
-createApp(App).mount('#app')
+import "bootstrap";
+
+import App from "./App.vue";
+
+createApp(App).mount("#app");
diff --git a/src/style.css b/src/style.css
deleted file mode 100644
index bb131d6..0000000
--- a/src/style.css
+++ /dev/null
@@ -1,79 +0,0 @@
-:root {
- font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif;
- line-height: 1.5;
- font-weight: 400;
-
- color-scheme: light dark;
- color: rgba(255, 255, 255, 0.87);
- background-color: #242424;
-
- font-synthesis: none;
- text-rendering: optimizeLegibility;
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
-}
-
-a {
- font-weight: 500;
- color: #646cff;
- text-decoration: inherit;
-}
-a:hover {
- color: #535bf2;
-}
-
-body {
- margin: 0;
- display: flex;
- place-items: center;
- min-width: 320px;
- min-height: 100vh;
-}
-
-h1 {
- font-size: 3.2em;
- line-height: 1.1;
-}
-
-button {
- border-radius: 8px;
- border: 1px solid transparent;
- padding: 0.6em 1.2em;
- font-size: 1em;
- font-weight: 500;
- font-family: inherit;
- background-color: #1a1a1a;
- cursor: pointer;
- transition: border-color 0.25s;
-}
-button:hover {
- border-color: #646cff;
-}
-button:focus,
-button:focus-visible {
- outline: 4px auto -webkit-focus-ring-color;
-}
-
-.card {
- padding: 2em;
-}
-
-#app {
- max-width: 1280px;
- margin: 0 auto;
- padding: 2rem;
- text-align: center;
-}
-
-@media (prefers-color-scheme: light) {
- :root {
- color: #213547;
- background-color: #ffffff;
- }
- a:hover {
- color: #747bff;
- }
- button {
- background-color: #f9f9f9;
- }
-}
diff --git a/vite.config.ts b/vite.config.ts
index bbcf80c..e3d9890 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -1,7 +1,7 @@
-import { defineConfig } from 'vite'
-import vue from '@vitejs/plugin-vue'
+import { defineConfig } from "vite";
+import vue from "@vitejs/plugin-vue";
// https://vite.dev/config/
export default defineConfig({
plugins: [vue()],
-})
+});