"Refactor frontend styling using Tailwind CSS"
This commit is contained in:
parent
e747ac945c
commit
02aeec4cf0
@ -36,7 +36,7 @@ SESSION_LIFETIME = timedelta(days=7)
|
||||
SSL_ENABLED = True
|
||||
SSL_CERT_PATH = "instance/ssl/myp.crt"
|
||||
SSL_KEY_PATH = "instance/ssl/myp.key"
|
||||
SSL_HOSTNAME = "raspberrypi"
|
||||
SSL_HOSTNAME = "localhost"
|
||||
|
||||
# Scheduler-Konfiguration
|
||||
SCHEDULER_INTERVAL = 60 # Sekunden
|
||||
@ -130,7 +130,7 @@ def create_simple_ssl_cert():
|
||||
# Generiere privaten Schlüssel
|
||||
private_key = rsa.generate_private_key(
|
||||
public_exponent=65537,
|
||||
key_size=2048,
|
||||
key_size=4096, # Stärkere Schlüsselgröße
|
||||
)
|
||||
|
||||
# Schreibe privaten Schlüssel
|
||||
@ -141,9 +141,18 @@ def create_simple_ssl_cert():
|
||||
encryption_algorithm=NoEncryption()
|
||||
))
|
||||
|
||||
# Erstelle Zertifikat
|
||||
# Aktuelles Datum und Ablaufdatum berechnen
|
||||
now = datetime.datetime.now()
|
||||
valid_until = now + datetime.timedelta(days=3650) # 10 Jahre gültig
|
||||
|
||||
# Erstelle Zertifikat mit erweiterten Attributen
|
||||
subject = issuer = x509.Name([
|
||||
x509.NameAttribute(NameOID.COMMON_NAME, SSL_HOSTNAME),
|
||||
x509.NameAttribute(NameOID.ORGANIZATION_NAME, "Mercedes-Benz AG"),
|
||||
x509.NameAttribute(NameOID.ORGANIZATIONAL_UNIT_NAME, "Werk 040 Berlin"),
|
||||
x509.NameAttribute(NameOID.COUNTRY_NAME, "DE"),
|
||||
x509.NameAttribute(NameOID.STATE_OR_PROVINCE_NAME, "Berlin"),
|
||||
x509.NameAttribute(NameOID.LOCALITY_NAME, "Berlin")
|
||||
])
|
||||
|
||||
cert = x509.CertificateBuilder().subject_name(
|
||||
@ -155,19 +164,43 @@ def create_simple_ssl_cert():
|
||||
).serial_number(
|
||||
x509.random_serial_number()
|
||||
).not_valid_before(
|
||||
datetime.datetime.utcnow()
|
||||
now
|
||||
).not_valid_after(
|
||||
datetime.datetime.utcnow() + datetime.timedelta(days=365)
|
||||
valid_until
|
||||
).add_extension(
|
||||
x509.SubjectAlternativeName([x509.DNSName(SSL_HOSTNAME)]),
|
||||
x509.SubjectAlternativeName([
|
||||
x509.DNSName(SSL_HOSTNAME),
|
||||
x509.DNSName("localhost"),
|
||||
x509.IPAddress(socket.inet_aton("127.0.0.1"))
|
||||
]),
|
||||
critical=False,
|
||||
).add_extension(
|
||||
x509.BasicConstraints(ca=True, path_length=None), critical=True
|
||||
).add_extension(
|
||||
x509.KeyUsage(
|
||||
digital_signature=True,
|
||||
content_commitment=False,
|
||||
key_encipherment=True,
|
||||
data_encipherment=False,
|
||||
key_agreement=False,
|
||||
key_cert_sign=True,
|
||||
crl_sign=True,
|
||||
encipher_only=False,
|
||||
decipher_only=False
|
||||
), critical=True
|
||||
).add_extension(
|
||||
x509.ExtendedKeyUsage([
|
||||
x509.oid.ExtendedKeyUsageOID.SERVER_AUTH,
|
||||
x509.oid.ExtendedKeyUsageOID.CLIENT_AUTH
|
||||
]), critical=False
|
||||
).sign(private_key, hashes.SHA256())
|
||||
|
||||
# Schreibe Zertifikat
|
||||
with open(SSL_CERT_PATH, "wb") as f:
|
||||
f.write(cert.public_bytes(Encoding.PEM))
|
||||
|
||||
print(f"Einfaches selbstsigniertes Zertifikat erstellt: {SSL_CERT_PATH}")
|
||||
print(f"Verbessertes selbstsigniertes Zertifikat erstellt: {SSL_CERT_PATH}")
|
||||
print(f"Gültig bis: {valid_until.strftime('%d.%m.%Y')}")
|
||||
|
||||
except ImportError:
|
||||
print("Konnte keine SSL-Zertifikate erstellen: cryptography-Paket nicht installiert")
|
||||
|
@ -56,6 +56,19 @@
|
||||
}
|
||||
}
|
||||
|
||||
/* Admin Panel spezifische Styles */
|
||||
@layer components {
|
||||
/* Dark Mode Styles für Admin Panel */
|
||||
.dark .bg-dark-card {
|
||||
@apply bg-dark-card transition-colors;
|
||||
}
|
||||
|
||||
/* Übergangseffekt für alle Komponenten */
|
||||
.transition-all-colors {
|
||||
@apply transition-colors duration-300;
|
||||
}
|
||||
}
|
||||
|
||||
/* Glassmorphism Flash Messages */
|
||||
.flash-message {
|
||||
@apply bg-white/70 dark:bg-black/70 backdrop-blur-md border border-gray-200 dark:border-slate-700/50 rounded-xl p-4 relative mb-4 shadow-md;
|
||||
|
@ -26,19 +26,19 @@ module.exports = {
|
||||
},
|
||||
// Dark Mode optimierte Farben - Verbessert
|
||||
'dark': {
|
||||
'bg': '#0f172a',
|
||||
'bg-secondary': '#1e293b',
|
||||
'bg': '#0f172a', // Dunkler Hintergrund
|
||||
'bg-secondary': '#131c2e', // Sekundärer Hintergrund noch dunkler
|
||||
'surface': '#1e293b',
|
||||
'surface-hover': '#334155',
|
||||
'card': '#1f2937',
|
||||
'card-hover': '#374151',
|
||||
'card': '#1e293b', // Dunklere Kartenfarbe für besseren Kontrast
|
||||
'card-hover': '#334155', // Dunklerer Hover-Zustand
|
||||
'text': '#f8fafc',
|
||||
'text-secondary': '#e2e8f0',
|
||||
'text-muted': '#94a3b8',
|
||||
'text-disabled': '#64748b',
|
||||
'border': '#334155',
|
||||
'border-light': '#475569',
|
||||
'hover': '#374151',
|
||||
'hover': '#334155', // Dunklerer Hover-Zustand
|
||||
'focus': '#475569',
|
||||
'accent': '#4f46e5'
|
||||
},
|
||||
|
Loading…
x
Reference in New Issue
Block a user