Compare commits
2 commits
bb62b5dde4
...
883e903a50
| Author | SHA1 | Date | |
|---|---|---|---|
| 883e903a50 | |||
| eb787abfa2 |
8 changed files with 33 additions and 16 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -207,3 +207,5 @@ tags
|
|||
[._]*.un~
|
||||
|
||||
# End of https://www.toptal.com/developers/gitignore/api/vim,venv,python
|
||||
|
||||
community_backup/community_backup/configuration.py
|
||||
|
|
|
|||
|
|
@ -128,6 +128,7 @@ STATIC_URL = "static/"
|
|||
|
||||
TASKS = {"default": {"BACKEND": "django.tasks.backends.immediate.ImmediateBackend"}}
|
||||
|
||||
STATIC_ROOT = BASE_DIR.parent.parent / "static"
|
||||
|
||||
# Import settings from configuration.py
|
||||
try:
|
||||
|
|
@ -139,6 +140,13 @@ try:
|
|||
assert module.BACKUP_HOME_DIR, "The BACKUP_HOME_DIR setting is required."
|
||||
assert module.BACKUP_BORG_DIR, "The BACKUP_BORG_DIR setting is required."
|
||||
assert module.BACKUP_AUTHORIZED_KEYS, "The BACKUP_AUTHORIZED_KEYS setting is required."
|
||||
|
||||
except ModuleNotFoundError:
|
||||
print(f"could not find configuration file {config_module}")
|
||||
exit(1)
|
||||
|
||||
BACKUP_USER = module.BACKUP_USER
|
||||
BACKUP_REPO_HOST = module.BACKUP_REPO_HOST
|
||||
BACKUP_HOME_DIR = module.BACKUP_HOME_DIR
|
||||
BACKUP_BORG_DIR = module.BACKUP_BORG_DIR
|
||||
BACKUP_AUTHORIZED_KEYS = module.BACKUP_AUTHORIZED_KEYS
|
||||
|
|
|
|||
|
|
@ -16,13 +16,11 @@ def sync_repos(dry_run=False):
|
|||
from .models import BorgRepository
|
||||
|
||||
repos = BorgRepository.objects.all()
|
||||
print(repos)
|
||||
|
||||
repos_by_key = defaultdict(list)
|
||||
for repo in repos:
|
||||
repos_by_key[repo.key].append(repo)
|
||||
|
||||
print(repos)
|
||||
# create .ssh directory
|
||||
ssh_dir = settings.BACKUP_AUTHORIZED_KEYS.parent
|
||||
if not dry_run:
|
||||
|
|
@ -45,10 +43,8 @@ def sync_repos(dry_run=False):
|
|||
if not dry_run:
|
||||
authorized_keys.write_text("\n".join(commands) + "\n")
|
||||
|
||||
print(repos)
|
||||
# remove repositories that do no longer exist
|
||||
repo_paths = {repo.path for repo in repos}
|
||||
print(repo_paths)
|
||||
for user_dir in settings.BACKUP_BORG_DIR.iterdir():
|
||||
print(user_dir)
|
||||
for dir in user_dir.iterdir():
|
||||
|
|
|
|||
|
|
@ -48,13 +48,7 @@
|
|||
<div class="row">
|
||||
<ul class="nav flex-column">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="{% url "about" %}">About</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="#">Imprint</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="#">Data Protection</a>
|
||||
<a class="nav-link" href="{% url 'imprint' %}">Imprint</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1,13 +1,17 @@
|
|||
{% extends "base.html" %}
|
||||
|
||||
{% block content %}
|
||||
<div class<div class="d-flex">
|
||||
<div class="d-flex">
|
||||
<h1>Your Borg Repositories</h1>
|
||||
<div class="p-2 ms-auto">
|
||||
<a class="btn btn-primary" href="{% url 'borg_add' %}" role="button">Add Repository</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<row>
|
||||
<p>Create a borg repository by specifying a name and the SSH public key that is allowed to access this repository. The name is only for your convenience. To set up the repository please follow the <a href="https://borgbackup.readthedocs.io/en/stable/">BorgBackup documentation</a>. There is also a <a href="https://borgbackup.readthedocs.io/en/stable/quickstart.html">Quick start guide</a> available.
|
||||
<b>Always use encrypted backups!</b></p>
|
||||
</row>
|
||||
|
||||
<table class="table table-striped table-hover">
|
||||
<thead>
|
||||
|
|
@ -30,4 +34,6 @@
|
|||
</table>
|
||||
|
||||
|
||||
|
||||
|
||||
{% endblock %}
|
||||
|
|
|
|||
|
|
@ -4,4 +4,10 @@
|
|||
<row class="text-center p-2">
|
||||
<h1>Welcome to Community Backup!</h1>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<p>This is a service offering space for backups free of charge. This is a hobby project. It comes with no garantuees for anything, especially availability of the service. This service is in a testing phase at the moment. It might be unavailalbe at times and features might change quickly.</p>
|
||||
<p>Currently this service offers only backups via <a href="https://www.borgbackup.org/">Borg Backup</a>.</p>
|
||||
<p>To access this service you need an account. To register for an account you need a voucher. Vouchers are required to control the amount of users, so that there is enough space available for everyone.</p>
|
||||
</row>
|
||||
{% endblock %}
|
||||
|
|
|
|||
|
|
@ -17,5 +17,5 @@ urlpatterns = [
|
|||
name="borg_delete",
|
||||
),
|
||||
path("register/", views.RegisterUserView.as_view(), name="register"),
|
||||
path("about/", views.AboutView.as_view(), name="about"),
|
||||
path("imprint/", views.ImprintView.as_view(), name="imprint"),
|
||||
]
|
||||
|
|
|
|||
|
|
@ -41,9 +41,14 @@ class MarkdownView(TemplateView):
|
|||
return context
|
||||
|
||||
|
||||
class AboutView(MarkdownView):
|
||||
class DataProtectionView(MarkdownView):
|
||||
template_name = "markdown.html"
|
||||
md = "about.md"
|
||||
md = "dataprotection.md"
|
||||
|
||||
|
||||
class ImprintView(MarkdownView):
|
||||
template_name = "markdown.html"
|
||||
md = "imprint.md"
|
||||
|
||||
|
||||
class BorgView(LoginRequiredMixin, ListView):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue