commit 7be91dd980962ad3524ee1f7a2300bee9332c4af (tree)
parent 4946aa87cffad60f7dacb50ac5629fe57a14d5e1
Author: Motiejus Jakštys <motiejus@jakstys.lt>
Date: Sun, 7 Jan 2024 22:48:26 +0200
e11mail -> e11sync
Diffstat:
12 files changed, 173 insertions(+), 189 deletions(-)
diff --git a/app/e11mail/asgi.py b/app/e11mail/asgi.py
@@ -1,16 +0,0 @@
-"""
-ASGI config for e11mail project.
-
-It exposes the ASGI callable as a module-level variable named ``application``.
-
-For more information on this file, see
-https://docs.djangoproject.com/en/5.0/howto/deployment/asgi/
-"""
-
-import os
-
-from django.core.asgi import get_asgi_application
-
-os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'e11mail.settings')
-
-application = get_asgi_application()
diff --git a/app/e11mail/settings.py b/app/e11mail/settings.py
@@ -1,106 +0,0 @@
-from pathlib import Path
-
-# Build paths inside the project like this: BASE_DIR / 'subdir'.
-BASE_DIR = Path(__file__).resolve().parent.parent
-
-# Quick-start development settings - unsuitable for production
-# See https://docs.djangoproject.com/en/5.0/howto/deployment/checklist/
-
-# SECURITY WARNING: keep the secret key used in production secret!
-SECRET_KEY = 'django-insecure-$e2!=equ(efm0e%f9&t+xjtz0)$*$@pw%rnjdqcl8f@5o5hw!l'
-
-# SECURITY WARNING: don't run with debug turned on in production!
-DEBUG = True
-
-ALLOWED_HOSTS = []
-
-# Application definition
-
-INSTALLED_APPS = [
- 'compressor',
- 'signup.apps.SignupConfig',
- 'django.contrib.admin',
- 'django.contrib.auth',
- 'django.contrib.contenttypes',
- 'django.contrib.sessions',
- 'django.contrib.messages',
- 'django.contrib.staticfiles',
-]
-
-MIDDLEWARE = [
- 'django.middleware.security.SecurityMiddleware',
- 'django.contrib.sessions.middleware.SessionMiddleware',
- 'django.middleware.common.CommonMiddleware',
- 'django.middleware.csrf.CsrfViewMiddleware',
- 'django.contrib.auth.middleware.AuthenticationMiddleware',
- 'django.contrib.messages.middleware.MessageMiddleware',
- 'django.middleware.clickjacking.XFrameOptionsMiddleware',
-]
-
-ROOT_URLCONF = 'e11mail.urls'
-
-TEMPLATES = [
- {
- 'BACKEND': 'django.template.backends.django.DjangoTemplates',
- 'DIRS': [],
- 'APP_DIRS': True,
- 'OPTIONS': {
- 'context_processors': [
- 'django.template.context_processors.debug',
- 'django.template.context_processors.request',
- 'django.contrib.auth.context_processors.auth',
- 'django.contrib.messages.context_processors.messages',
- ],
- },
- },
-]
-
-WSGI_APPLICATION = 'e11mail.wsgi.application'
-
-DATABASES = {
- 'default': {
- 'ENGINE': 'django.db.backends.sqlite3',
- 'NAME': BASE_DIR / 'db.sqlite3',
- }
-}
-
-AUTH_PASSWORD_VALIDATORS = [
- {
- 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
- },
- {
- 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
- },
- {
- 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
- },
- {
- 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
- },
-]
-
-
-LANGUAGE_CODE = 'en-us'
-
-TIME_ZONE = 'UTC'
-
-USE_I18N = True
-
-USE_TZ = True
-
-STATIC_URL = 'static/'
-
-STATICFILES_FINDERS = [
- "django.contrib.staticfiles.finders.AppDirectoriesFinder",
- "compressor.finders.CompressorFinder",
-]
-
-STATIC_ROOT = '/tmp/e11mail-static'
-
-COMPRESS_PRECOMPILERS = (
- # TODO: --style=compressed + source maps
- # https://github.com/django-compressor/django-compressor/issues/438
- ('text/x-scss', 'sass {infile} {outfile}'),
-)
-
-DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
diff --git a/app/e11mail/urls.py b/app/e11mail/urls.py
@@ -1,24 +0,0 @@
-"""
-URL configuration for e11mail project.
-
-The `urlpatterns` list routes URLs to views. For more information please see:
- https://docs.djangoproject.com/en/5.0/topics/http/urls/
-Examples:
-Function views
- 1. Add an import: from my_app import views
- 2. Add a URL to urlpatterns: path('', views.home, name='home')
-Class-based views
- 1. Add an import: from other_app.views import Home
- 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
-Including another URLconf
- 1. Import the include() function: from django.urls import include, path
- 2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
-"""
-
-from django.contrib import admin
-from django.urls import include, path
-
-urlpatterns = [
- path('admin/', admin.site.urls),
- path('', include('signup.urls')),
-]
diff --git a/app/e11mail/wsgi.py b/app/e11mail/wsgi.py
@@ -1,16 +0,0 @@
-"""
-WSGI config for e11mail project.
-
-It exposes the WSGI callable as a module-level variable named ``application``.
-
-For more information on this file, see
-https://docs.djangoproject.com/en/5.0/howto/deployment/wsgi/
-"""
-
-import os
-
-from django.core.wsgi import get_wsgi_application
-
-os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'e11mail.settings')
-
-application = get_wsgi_application()
diff --git a/app/e11mail/__init__.py b/app/e11sync/__init__.py
diff --git a/app/e11sync/asgi.py b/app/e11sync/asgi.py
@@ -0,0 +1,16 @@
+"""
+ASGI config for e11sync project.
+
+It exposes the ASGI callable as a module-level variable named ``application``.
+
+For more information on this file, see
+https://docs.djangoproject.com/en/5.0/howto/deployment/asgi/
+"""
+
+import os
+
+from django.core.asgi import get_asgi_application
+
+os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'e11sync.settings')
+
+application = get_asgi_application()
diff --git a/app/e11sync/settings.py b/app/e11sync/settings.py
@@ -0,0 +1,106 @@
+from pathlib import Path
+
+# Build paths inside the project like this: BASE_DIR / 'subdir'.
+BASE_DIR = Path(__file__).resolve().parent.parent
+
+# Quick-start development settings - unsuitable for production
+# See https://docs.djangoproject.com/en/5.0/howto/deployment/checklist/
+
+# SECURITY WARNING: keep the secret key used in production secret!
+SECRET_KEY = 'django-insecure-$e2!=equ(efm0e%f9&t+xjtz0)$*$@pw%rnjdqcl8f@5o5hw!l'
+
+# SECURITY WARNING: don't run with debug turned on in production!
+DEBUG = True
+
+ALLOWED_HOSTS = []
+
+# Application definition
+
+INSTALLED_APPS = [
+ 'compressor',
+ 'signup.apps.SignupConfig',
+ 'django.contrib.admin',
+ 'django.contrib.auth',
+ 'django.contrib.contenttypes',
+ 'django.contrib.sessions',
+ 'django.contrib.messages',
+ 'django.contrib.staticfiles',
+]
+
+MIDDLEWARE = [
+ 'django.middleware.security.SecurityMiddleware',
+ 'django.contrib.sessions.middleware.SessionMiddleware',
+ 'django.middleware.common.CommonMiddleware',
+ 'django.middleware.csrf.CsrfViewMiddleware',
+ 'django.contrib.auth.middleware.AuthenticationMiddleware',
+ 'django.contrib.messages.middleware.MessageMiddleware',
+ 'django.middleware.clickjacking.XFrameOptionsMiddleware',
+]
+
+ROOT_URLCONF = 'e11sync.urls'
+
+TEMPLATES = [
+ {
+ 'BACKEND': 'django.template.backends.django.DjangoTemplates',
+ 'DIRS': [],
+ 'APP_DIRS': True,
+ 'OPTIONS': {
+ 'context_processors': [
+ 'django.template.context_processors.debug',
+ 'django.template.context_processors.request',
+ 'django.contrib.auth.context_processors.auth',
+ 'django.contrib.messages.context_processors.messages',
+ ],
+ },
+ },
+]
+
+WSGI_APPLICATION = 'e11sync.wsgi.application'
+
+DATABASES = {
+ 'default': {
+ 'ENGINE': 'django.db.backends.sqlite3',
+ 'NAME': BASE_DIR / 'db.sqlite3',
+ }
+}
+
+AUTH_PASSWORD_VALIDATORS = [
+ {
+ 'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
+ },
+ {
+ 'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
+ },
+ {
+ 'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
+ },
+ {
+ 'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
+ },
+]
+
+
+LANGUAGE_CODE = 'en-us'
+
+TIME_ZONE = 'UTC'
+
+USE_I18N = True
+
+USE_TZ = True
+
+STATIC_URL = 'static/'
+
+STATICFILES_FINDERS = [
+ "django.contrib.staticfiles.finders.AppDirectoriesFinder",
+ "compressor.finders.CompressorFinder",
+]
+
+STATIC_ROOT = '/tmp/e11sync-static'
+
+COMPRESS_PRECOMPILERS = (
+ # TODO: --style=compressed + source maps
+ # https://github.com/django-compressor/django-compressor/issues/438
+ ('text/x-scss', 'sass {infile} {outfile}'),
+)
+
+DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
diff --git a/app/e11sync/urls.py b/app/e11sync/urls.py
@@ -0,0 +1,24 @@
+"""
+URL configuration for e11sync project.
+
+The `urlpatterns` list routes URLs to views. For more information please see:
+ https://docs.djangoproject.com/en/5.0/topics/http/urls/
+Examples:
+Function views
+ 1. Add an import: from my_app import views
+ 2. Add a URL to urlpatterns: path('', views.home, name='home')
+Class-based views
+ 1. Add an import: from other_app.views import Home
+ 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
+Including another URLconf
+ 1. Import the include() function: from django.urls import include, path
+ 2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
+"""
+
+from django.contrib import admin
+from django.urls import include, path
+
+urlpatterns = [
+ path('admin/', admin.site.urls),
+ path('', include('signup.urls')),
+]
diff --git a/app/e11sync/wsgi.py b/app/e11sync/wsgi.py
@@ -0,0 +1,16 @@
+"""
+WSGI config for e11sync project.
+
+It exposes the WSGI callable as a module-level variable named ``application``.
+
+For more information on this file, see
+https://docs.djangoproject.com/en/5.0/howto/deployment/wsgi/
+"""
+
+import os
+
+from django.core.wsgi import get_wsgi_application
+
+os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'e11sync.settings')
+
+application = get_wsgi_application()
diff --git a/app/manage.py b/app/manage.py
@@ -6,7 +6,7 @@ import sys
def main():
"""Run administrative tasks."""
- os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'e11mail.settings')
+ os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'e11sync.settings')
try:
from django.core.management import execute_from_command_line
except ImportError as exc:
diff --git a/app/signup/templates/signup/base.html b/app/signup/templates/signup/base.html
@@ -3,7 +3,7 @@
<html lang="en">
<head>
<meta charset="utf-8">
- <title>{% block "title" %}e11mail.com{% endblock %}</title>
+ <title>{% block "title" %}e11sync.com{% endblock %}</title>
<meta name="viewport" content="width=device-width,initial-scale=1">
{% compress css %}
<link rel="stylesheet" type="text/x-scss" href="{% static "signup/style.scss" %}">
@@ -14,7 +14,7 @@
<div>
<section id="header">
- <h1 class="brand-title"><a href="{% url "index" %}">e11mail.com</a></h1>
+ <h1 class="brand-title"><a href="{% url "index" %}">e11sync.com</a></h1>
<h2 class="brand-subtitle">Email for Everyone</h2>
</section><!-- #header -->
diff --git a/app/signup/templates/signup/index.html b/app/signup/templates/signup/index.html
@@ -7,42 +7,26 @@
<section class="leftright pure-g">
<article class="pure-u-1 pure-u-md-1-2">
- <h1 id="backup">Effortless and safe backup</h1>
+ <h1 id="backup">Usage-based pricing</h1>
- All files are backed up every few minutes and old copies are stored for
- decades. Overwritten an important file by accident? No problem, restore it
- with a couple of clicks. Synctech protects against ransomware: even if all
- devices get compromised, backups will always work.
+ Tired of paying per e-mail address? e11sync.com offers unlimited domains
+ and unlimited addresses. Pay only for the used storage and the emails sent
+ and received (don't worry, limits are more than enough for fair use).
</article>
<article class="pure-u-1 pure-u-md-1-2">
<h1 id="opensource">Open-source</h1>
- Synctech is powered by <a
- href="https://syncthing.net">syncthing</a>, an open-source file
- synchronization tool, first released in 2013.
-
- <p>Just like syncthing, Synctech is open-source, licensed under <a
- href="https://www.gnu.org/licenses/agpl-3.0.en.html">AGPL-v3</a>.
+ Entirety of e11sync.com is open source, including the infrastructure to run
+ it. No proprietary clients, tools or protocols.
</article>
<article class="pure-u-1 pure-u-md-1-2">
- <h1 id="privacy">Privacy</h1>
-
- <p>You can <a
- href="https://docs.syncthing.net/branch/untrusted/html/users/untrusted.html">protect
- a folder with a password</a>.
-
- When the folder is password-protected, the files can be read only on the
- devices where password was entered. Nobody can access your data without a
- password, including us.
+ <h1 id="privacy">Company mission and funding</h1>
- <p>This is quite unique in the on-line synchronization and
- backup space. While we very carefully protect your data, you are
- additionally assured that it is impossible to read your files for anyone
- else but you (or others, with whom you have shared the password).
+ We are a small bootstrapped company. We did not take funding and will not.
</article>