better admin creation

This commit is contained in:
2025-06-09 13:45:00 +02:00
parent c31f1bb59d
commit e43718894b
4 changed files with 45 additions and 12 deletions

View File

@@ -7,6 +7,7 @@ RUN apt-get update && apt-get install -y \
postgresql-client \ postgresql-client \
curl \ curl \
netcat-traditional \ netcat-traditional \
dos2unix \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
# Create a non-root user # Create a non-root user
@@ -22,15 +23,13 @@ RUN pip install --no-cache-dir -r requirements.txt
# Copy application code # Copy application code
COPY . . COPY . .
# Create necessary directories and set permissions # Convert line endings and set permissions
RUN mkdir -p /app/uploads/rooms /app/uploads/profile_pics /app/static/uploads && \ RUN dos2unix /app/entrypoint.sh && \
chmod +x /app/entrypoint.sh && \
mkdir -p /app/uploads/rooms /app/uploads/profile_pics /app/static/uploads && \
chown -R celery:celery /app && \ chown -R celery:celery /app && \
chmod -R 755 /app/uploads chmod -R 755 /app/uploads
# Make entrypoint script executable
RUN chmod +x /app/entrypoint.sh && \
chown celery:celery /app/entrypoint.sh
# Switch to non-root user # Switch to non-root user
USER celery USER celery

34
app.py
View File

@@ -118,15 +118,20 @@ def create_app():
admin = User( admin = User(
username='administrator', username='administrator',
email='administrator@docupulse.com', email='administrator@docupulse.com',
last_name='None', last_name='Administrator',
company='docupulse', company='DocuPulse',
position='System Administrator',
is_admin=True, is_admin=True,
is_active=True is_active=True,
preferred_view='grid'
) )
admin.set_password('changeme') admin.set_password('changeme')
db.session.add(admin) db.session.add(admin)
db.session.commit() db.session.commit()
click.echo("Default administrator user created successfully.") click.echo("Default administrator user created successfully.")
click.echo("Admin credentials:")
click.echo("Email: administrator@docupulse.com")
click.echo("Password: changeme")
# Register custom filters # Register custom filters
app.jinja_env.filters['timeago'] = timeago app.jinja_env.filters['timeago'] = timeago
@@ -136,6 +141,29 @@ def create_app():
try: try:
# Ensure database tables exist # Ensure database tables exist
db.create_all() db.create_all()
# Create admin user first
admin = User.query.filter_by(email='administrator@docupulse.com').first()
if not admin:
admin = User(
username='administrator',
email='administrator@docupulse.com',
last_name='Administrator',
company='DocuPulse',
position='System Administrator',
is_admin=True,
is_active=True,
preferred_view='grid'
)
admin.set_password('changeme')
db.session.add(admin)
db.session.commit()
print("Default administrator user created successfully.")
print("Admin credentials:")
print("Email: administrator@docupulse.com")
print("Password: changeme")
# Then create default templates
create_default_templates() create_default_templates()
except Exception as e: except Exception as e:
print(f"Warning: Could not create default templates: {e}") print(f"Warning: Could not create default templates: {e}")

View File

@@ -7,10 +7,10 @@ networks:
services: services:
web: web:
build: build:
context: . # context: .
dockerfile: Dockerfile
# context: https://git.kobeamerijckx.com/Kobe/docupulse.git
# dockerfile: Dockerfile # dockerfile: Dockerfile
context: https://git.kobeamerijckx.com/Kobe/docupulse.git
dockerfile: Dockerfile
ports: ports:
- "${PORT:-10335}:5000" - "${PORT:-10335}:5000"
environment: environment:

View File

@@ -90,12 +90,18 @@ with app.app_context():
try: try:
db.session.commit() db.session.commit()
print('Default administrator user created successfully.') print('Default administrator user created successfully.')
print('Admin credentials:')
print('Email: administrator@docupulse.com')
print('Password: changeme')
except Exception as e: except Exception as e:
db.session.rollback() db.session.rollback()
log_error('Failed to commit admin user creation', e) log_error('Failed to commit admin user creation', e)
raise raise
else: else:
print('Admin user already exists.') print('Admin user already exists.')
print('Admin credentials:')
print('Email: administrator@docupulse.com')
print('Password: changeme')
except Exception as e: except Exception as e:
log_error('Error during admin user creation/check', e) log_error('Error during admin user creation/check', e)
raise raise