change location

This commit is contained in:
oleg.vodyanov91@gmail.com 2025-04-12 23:53:39 +04:00
parent 7261dfaed7
commit 0d66a33243
14 changed files with 68 additions and 33 deletions

2
.gitignore vendored
View File

@ -14,3 +14,5 @@ __pycache__/
**/migrations/
!*/migrations/__init__.py # Keep the init file if you ignore migrations
instalinks/myapp.log
myapp.log

View File

@ -6,20 +6,30 @@ FROM python:3.12.9-slim-bookworm
WORKDIR /app
# Copy requirements first, to leverage Docker's layer caching
COPY instalinks/requirements.txt /app/
COPY instalinks/instalinks/requirements.txt /app/
# Install dependencies
RUN pip install --no-cache-dir -r requirements.txt
RUN pip install --no-cache-dir -r requirements.txt && \
apt update && apt install -y nginx uwsgi which gcc
# Copy the rest of the source code
COPY instalinks/ /app/
COPY static /app/static
COPY nginx/etc/nginx/sites-available /etc/nginx/sites-available
COPY running.sh /app/
COPY manage.py /app/
ENV DB_USER=/run/secrets/DB_USER
ENV DB_PASSWORD=/run/secrets/DB_PASSWORD
ENV DB_NAME=/run/secrets/DB_NAME
# Set environment variables for Django
ENV PYTHONUNBUFFERED 1
ENV DJANGO_SETTINGS_MODULE instagram_links.settings
ENV DJANGO_SETTINGS_MODULE settings
# Expose the port Django runs on
EXPOSE 8000
# EXPOSE 8000
EXPOSE 8080
# Default command: run the Django dev server
CMD ["gunicorn", "instalinks.wsgi:application"]
CMD /app/running.sh

View File

@ -4,9 +4,9 @@
FROM bitnami/postgresql:17.4.0-debian-12-r12
# Set environment variables to override default credentials
ENV POSTGRES_USER=/run/secrets/DB_USER
ENV POSTGRES_PASSWORD=/run/secrets/DB_PASSWORD
ENV POSTGRES_DB=/run/secrets/DB_NAME
#ENV POSTGRES_USER=DB_USER
#ENV POSTGRES_PASSWORD=DB_PASSWORD
#ENV POSTGRES_DB=DB_NAME
# Copy the SQL init script into the entrypoint directory
COPY init.sql /docker-entrypoint-initdb.d/init.sql

View File

@ -11,6 +11,6 @@ import os
from django.core.asgi import get_asgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'instalinks.settings')
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'asettings')
application = get_asgi_application()

View File

@ -63,6 +63,6 @@
<!-- Bootstrap JS -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
<!-- Custom JS -->
<script src="{% static "links/main.js" %}"></script>
<script src="{% static 'links/main.js' %}"></script>
</body>
</html>

View File

@ -27,7 +27,7 @@ SECRET_KEY = 'django-insecure--6^d01urjvdon#5(lf+-1qm385!$82j^q@6*&=xkm^0f@0s(h-
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
ALLOWED_HOSTS = []
ALLOWED_HOSTS = ['.localhost', '127.0.0.1', '[::1]']
# Application definition
@ -52,7 +52,7 @@ MIDDLEWARE = [
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
ROOT_URLCONF = 'instalinks.urls'
ROOT_URLCONF = 'urls'
TEMPLATES = [
{
@ -69,10 +69,19 @@ TEMPLATES = [
},
]
{
"default": {
"BACKEND": "django.core.files.storage.FileSystemStorage",
},
"staticfiles": {
"BACKEND": "django.contrib.staticfiles.storage.StaticFilesStorage",
},
}
SETTINGS_PATH = os.path.normpath(os.path.dirname(__file__))
WSGI_APPLICATION = 'instalinks.wsgi.application'
WSGI_APPLICATION = 'wsgi.application'
# Database
@ -84,7 +93,7 @@ DATABASES = {
'NAME': os.environ.get('DB_NAME'),
'USER': os.environ.get('DB_USER'),
'PASSWORD': os.environ.get('DB_PASSWORD'),
'HOST': 'localhost',
'HOST': 'instagram_links_db',
'PORT': '5432',
}
}
@ -124,11 +133,14 @@ USE_TZ = True
# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/5.2/howto/static-files/
STATIC_URL = '/static/'
STATIC_URL = 'static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static')
os.path.join(BASE_DIR, 'app/static')
]
STATIC_ROOT = os.path.join(BASE_DIR, 'staticFiles')
# Default primary key field type
# https://docs.djangoproject.com/en/5.2/ref/settings/#default-auto-field

View File

@ -10,7 +10,13 @@ https://docs.djangoproject.com/en/5.2/howto/deployment/wsgi/
import os
from django.core.wsgi import get_wsgi_application
from settings import BASE_DIR
import logging
logger = logging.getLogger(__name__)
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'instalinks.settings')
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'settings')
logging.basicConfig(filename='myapp.log', level=logging.INFO)
logger.info(f'BASE_DIR {BASE_DIR}')
application = get_wsgi_application()

View File

@ -6,7 +6,7 @@ import sys
def main():
"""Run administrative tasks."""
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'instalinks.settings')
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'settings')
try:
from django.core.management import execute_from_command_line
except ImportError as exc:

View File

@ -0,0 +1,16 @@
server {
listen 8080;
server_name myinstalinks.ru;
access_log /var/log/nginx/instalinks-acces.log;
error_log /var/log/nginx/instalinks-error.log;
location /static/ {
alias /staticFiles/;
}
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

View File

@ -1,14 +0,0 @@
server {
listen 80;
server_name instalinks.ru;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/youruser/myproject;
}
location / {
include proxy_params;
proxy_pass http://<>;
}
}

3
running.sh Executable file
View File

@ -0,0 +1,3 @@
#!/usr/bin/env bash
python manage.py collectstatic && service nginx start && gunicorn wsgi:application