diff --git a/panel/src/panel/forms.py b/panel/src/panel/forms.py
new file mode 100644
index 00000000..ae966250
--- /dev/null
+++ b/panel/src/panel/forms.py
@@ -0,0 +1,13 @@
+from django import forms
+from .models import DeployFormModel
+
+
+class DeployForm(forms.ModelForm):
+ class Meta:
+ model = DeployFormModel
+ fields = [
+ 'domain',
+ 'mastodon',
+ 'pixelfed',
+ 'mastodon',
+ ]
diff --git a/panel/src/panel/models.py b/panel/src/panel/models.py
new file mode 100644
index 00000000..9aeb88fd
--- /dev/null
+++ b/panel/src/panel/models.py
@@ -0,0 +1,11 @@
+from django.db import models
+
+
+class DeployFormModel(models.Model):
+ domain = models.TextField()
+ mastodon = models.BooleanField(default=False)
+ pixelfed = models.BooleanField(default=False)
+ peertube = models.BooleanField(default=False)
+
+ def __str__(self):
+ return self.domain
diff --git a/panel/src/panel/templates/deploy_services.html b/panel/src/panel/templates/deploy_services.html
new file mode 100644
index 00000000..76583e91
--- /dev/null
+++ b/panel/src/panel/templates/deploy_services.html
@@ -0,0 +1,55 @@
+{% extends "base.html" %}
+{% block content %}
+
+{% endblock %}
diff --git a/panel/src/panel/templates/index.html b/panel/src/panel/templates/index.html
index 1f091878..80a62e12 100644
--- a/panel/src/panel/templates/index.html
+++ b/panel/src/panel/templates/index.html
@@ -3,56 +3,4 @@
{% block content %}
Fediversity Panel
-
-
{% endblock %}
diff --git a/panel/src/panel/urls.py b/panel/src/panel/urls.py
index 46c765e0..021ec69c 100644
--- a/panel/src/panel/urls.py
+++ b/panel/src/panel/urls.py
@@ -25,4 +25,5 @@ urlpatterns = [
path("", include("django.contrib.auth.urls")),
path("account/", views.AccountDetail.as_view(), name='account_detail'),
path("services/", views.ServiceList.as_view(), name='service_list'),
+ path("deploy/", views.DeployServices.as_view(), name='deploy_services'),
]
diff --git a/panel/src/panel/views.py b/panel/src/panel/views.py
index 17656966..e879b9e2 100644
--- a/panel/src/panel/views.py
+++ b/panel/src/panel/views.py
@@ -2,6 +2,11 @@ from django.contrib.auth.mixins import LoginRequiredMixin
from django.contrib.auth.models import User
from django.views.generic import TemplateView
from django.views.generic import DetailView
+from django.views.generic.edit import CreateView
+from django.shortcuts import render, redirect
+from django.urls import reverse_lazy
+from .models import DeployFormModel
+from .forms import DeployForm
class Index(TemplateView):
template_name = 'index.html'
@@ -14,3 +19,10 @@ class AccountDetail(LoginRequiredMixin, DetailView):
class ServiceList(TemplateView):
template_name = 'service_list.html'
+
+class DeployServices(LoginRequiredMixin, TemplateView):
+ template_name = 'deploy_services.html'
+ model = DeployFormModel
+ form_class = DeployForm
+ success_url = reverse_lazy('index')
+