Self-hostable uptime monitor and status page on Django: HTTP checks, Lighthouse audits, SEO crawls, and email and Discord alerts.
djangodockerhandcodedpythonself-hostedsqlitestatus-pageuptime-monitoringvite
1# Generated by Django 4.0.5 on 2022-06-19 23:33
2
3from django.conf import settings
4from django.db import migrations, models
5import django.db.models.deletion
6import uuid
7
8
9class Migration(migrations.Migration):
10
11 initial = True
12
13 dependencies = [
14 migrations.swappable_dependency(settings.AUTH_USER_MODEL),
15 ]
16
17 operations = [
18 migrations.CreateModel(
19 name='Property',
20 fields=[
21 ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
22 ('url', models.CharField(max_length=255)),
23 ('is_public', models.BooleanField(default=False)),
24 ('run_interval', models.IntegerField(choices=[(60, 'Every 1 minute'), (180, 'Every 3 minutes'), (300, 'Every 5 minutes'), (900, 'Every 15 minutes'), (1800, 'Every 30 minutes'), (3600, 'Every hour')], default=180)),
25 ('last_run_at', models.DateTimeField(blank=True, null=True)),
26 ('next_run_at', models.DateTimeField(blank=True, null=True)),
27 ('created_at', models.DateTimeField(auto_now_add=True)),
28 ('updated_at', models.DateTimeField(auto_now=True)),
29 ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='properties', to=settings.AUTH_USER_MODEL)),
30 ],
31 options={
32 'verbose_name': 'Property',
33 'verbose_name_plural': 'Properties',
34 },
35 ),
36 migrations.CreateModel(
37 name='Check',
38 fields=[
39 ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
40 ('status_code', models.IntegerField()),
41 ('response_time', models.IntegerField(default=0)),
42 ('headers', models.JSONField(default=dict)),
43 ('created_at', models.DateTimeField(auto_now_add=True)),
44 ('property', models.ForeignKey(editable=False, on_delete=django.db.models.deletion.CASCADE, related_name='statuses', to='properties.property')),
45 ],
46 options={
47 'verbose_name': 'Check',
48 'verbose_name_plural': 'Checks',
49 'get_latest_by': 'created_at',
50 },
51 ),
52 migrations.AddIndex(
53 model_name='check',
54 index=models.Index(fields=['created_at'], name='properties__created_8f285e_idx'),
55 ),
56 ]