diff --git a/Makefile b/Makefile index e7782ec..cb461c3 100644 --- a/Makefile +++ b/Makefile @@ -10,18 +10,25 @@ build: ## Build all the required containers docker build -t monero -f Dockerfile-monero . docker build -t xmrauctions -f Dockerfile-xmrauctions . +up: ## Run dev service containers + docker-compose up -d +dev: ## Start development web service + ./manage.py runserver -### Stage +### Deploy -stage-up: ## Run the stage containers - docker-compose -f docker-compose.yaml -f docker-compose.stage.yaml up -d +deploy-up: ## Run the containers + docker-compose -f docker-compose.yaml -f docker-compose.deploy.yaml up -d -stage-ps: ## Show containers - docker-compose -f docker-compose.yaml -f docker-compose.stage.yaml ps +deploy-down: ## Stop the containers + docker-compose -f docker-compose.yaml -f docker-compose.deploy.yaml down -stage-logs: ## Show logs - docker-compose -f docker-compose.yaml -f docker-compose.stage.yaml logs -f +deploy-ps: ## Show the containers + docker-compose -f docker-compose.yaml -f docker-compose.deploy.yaml ps -stage-static: ## Collect static +deploy-logs: ## Show container logs + docker-compose -f docker-compose.yaml -f docker-compose.deploy.yaml logs -f + +deploy-static: ## Collect static docker run --rm --env-file=.env xmrauctions ./manage.py collectstatic --no-input diff --git a/core/urls.py b/core/urls.py index a4f4dc4..cb27023 100644 --- a/core/urls.py +++ b/core/urls.py @@ -4,5 +4,6 @@ from . import views urlpatterns = [ path('', views.home, name='home'), - path('shipping/edit/', views.edit_shipping, name='edit_shipping') + path('health/', views.health, name='health'), + path('shipping/edit/', views.edit_shipping, name='edit_shipping'), ] diff --git a/core/views.py b/core/views.py index 918d9a8..595345e 100644 --- a/core/views.py +++ b/core/views.py @@ -1,10 +1,11 @@ from django.shortcuts import render, HttpResponseRedirect, reverse +from django.http import JsonResponse from django.contrib.auth.decorators import login_required from django.contrib.auth.models import User from django.contrib import messages from core.forms import UserShippingAddressForm from core.models import UserShippingAddress -from core.monero import AuctionDaemon +from core.monero import AuctionDaemon, AuctionWallet def home(request): @@ -17,6 +18,17 @@ def home(request): return render(request, 'home.html', {'daemon_info': daemon_info}) +def health(request): + daemon = AuctionDaemon() + wallet = AuctionWallet() + + context = { + 'daemon_connected': daemon.connected, + 'wallet_connected': wallet.connected + } + + return JsonResponse(context) + @login_required def edit_shipping(request): profile = UserShippingAddress.objects.filter(user=request.user).first() diff --git a/docker-compose.deploy.yaml b/docker-compose.deploy.yaml new file mode 100644 index 0000000..ac4614e --- /dev/null +++ b/docker-compose.deploy.yaml @@ -0,0 +1,19 @@ +version: '3' +services: + gunicorn: + env_file: + - .env + image: xmrauctions:latest + command: [".venv/bin/gunicorn", "-b", "0.0.0.0:8000", "xmrauctions.wsgi"] + ports: + - 8000:8000 + migrations: + env_file: + - .env + image: xmrauctions:latest + command: ["./manage.py", "migrate"] + huey: + env_file: + - .env + image: xmrauctions:latest + command: ["./manage.py", "run_huey"] diff --git a/docker-compose.stage.yaml b/docker-compose.stage.yaml deleted file mode 100644 index 77e2a08..0000000 --- a/docker-compose.stage.yaml +++ /dev/null @@ -1,9 +0,0 @@ -version: '3' -services: - gunicorn: - env_file: - - .env - image: xmrauctions:latest - command: [".venv/bin/gunicorn", "-b", "0.0.0.0:8000", "xmrauctions.wsgi"] - ports: - - 8000:8000