Skip to content

Commit

Permalink
[v1.1.1] Merge pull request #27 from KageRyo/develop
Browse files Browse the repository at this point in the history
Update to RyoURL v1.1.1
  • Loading branch information
KageRyo authored Aug 1, 2024
2 parents 8f64e59 + 6899398 commit 53e8f21
Show file tree
Hide file tree
Showing 9 changed files with 107 additions and 27 deletions.
9 changes: 7 additions & 2 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
FROM python:3.10-slim

ENV PYTHONUNBUFFERED 1

WORKDIR /workspace

COPY requirements.txt .
Expand All @@ -10,8 +12,11 @@ RUN apt-get update && apt-get install -y \
vim \
curl \
wget \
redis-server
postgresql-client \
procps \
net-tools \
redis-tools

COPY . .

CMD service redis-server start && python manage.py runserver 0.0.0.0:8000
CMD ["bash"]
40 changes: 23 additions & 17 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,19 +1,25 @@
{
"name": "RyoURL Container",
"build": {
"dockerfile": "Dockerfile",
"context": ".."
},
"extensions": [
"ms-python.python",
"ms-python.vscode-pylance",
"batisteo.vscode-django",
"junstyle.vscode-django-support",
"GitHub.copilot-chat",
"GitHub.copilot",
"donjayamanne.python-extension-pack"
],
"settings": {
"python.pythonPath": "/usr/local/bin/python"
},
"name": "RyoURL Container",
"dockerComposeFile": "../docker-compose.yml",
"service": "web",
"workspaceFolder": "/workspace",
"extensions": [
"ms-python.python",
"ms-python.vscode-pylance",
"batisteo.vscode-django",
"junstyle.vscode-django-support",
"GitHub.copilot-chat",
"GitHub.copilot",
"donjayamanne.python-extension-pack",
"ms-azuretools.vscode-docker"
],
"forwardPorts": [8000, 6379],
"postCreateCommand": "pip install -r requirements.txt",
"settings": {
"python.pythonPath": "/usr/local/bin/python"
},
"remoteEnv": {
"DATABASE_URL": "postgres://myuser:mypassword@postgresql:5432/mydatabase",
"REDIS_URL": "redis://redis:6379/1"
}
}
19 changes: 19 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
// 使用 IntelliSense 以得知可用的屬性。
// 暫留以檢視現有屬性的描述。
// 如需詳細資訊,請瀏覽: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Python 偵錯工具: Django",
"type": "debugpy",
"request": "launch",
"args": [
"runserver"
],
"django": true,
"autoStartBrowser": false,
"program": "${workspaceFolder}/RyoURL/manage.py"
}
]
}
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ create_date : datetime.datetime # 創建日期
```

## 資料庫
此專案資料庫使用 Django 內建之 db.sqlite3,當然,您能依照需求更換成其他關聯性資料庫,包含但不限於:MySQL、PostgreSQL ......。
此專案資料庫使用 PostgreSQL,當然,您能依照需求更換成其他關聯性資料庫,包含但不限於:MySQL、sqlite3 ......。

## 開源貢獻
歡迎對 RyoURL 做出任何形式的貢獻,您可以於 [Issues](https://github.com/KageRyo/RyoURL/issues) 提出問題或希望增加的功能,亦歡迎透過 [Pull Requests](https://github.com/KageRyo/RyoURL/pulls) 提交您的程式碼更動!
Expand Down
17 changes: 13 additions & 4 deletions RyoURL/RyoURL/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,14 @@

ALLOWED_HOSTS = [
'.ngrok-free.app',
'127.0.0.1'
'127.0.0.1',
'localhost',
'0.0.0.0'
]

CORS_ALLOWED_ORIGINS = [
'http://*.ngrok-free.app',
]

# Application definition
# 應用程式定義
Expand Down Expand Up @@ -91,15 +96,19 @@

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
'ENGINE': 'django.db.backends.postgresql',
'NAME': os.getenv('DB_NAME', 'mydatabase'),
'USER': os.getenv('DB_USER', 'myuser'),
'PASSWORD': os.getenv('DB_PASSWORD', 'mypassword'),
'HOST': os.getenv('DB_HOST', 'postgresql'),
'PORT': os.getenv('DB_PORT', '5432'),
}
}

CACHES = {
"default": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://127.0.0.1:6379/1",
"LOCATION": os.getenv('REDIS_URL', 'redis://redis:6379/1'),
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
}
Expand Down
3 changes: 3 additions & 0 deletions RyoURL/manage.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
#!/usr/bin/env python
from django.core.management.commands.runserver import Command as runserver

"""Django's command-line utility for administrative tasks."""
import os
import sys
Expand All @@ -15,6 +17,7 @@ def main():
"available on your PYTHONPATH environment variable? Did you "
"forget to activate a virtual environment?"
) from exc
runserver.default_addr = '0.0.0.0'
execute_from_command_line(sys.argv)


Expand Down
4 changes: 2 additions & 2 deletions RyoURL/shortURL/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
from django.core.cache import cache
from django.shortcuts import get_object_or_404
from django.utils import timezone
from django.http import HttpResponse, HttpResponsePermanentRedirect
from django.http import HttpResponse, HttpResponseRedirect
from django.db.models import F
from .models import Url

Expand Down Expand Up @@ -58,7 +58,7 @@ def redirectShortUrl(request, short_string):
handle_visit_count(url) # 處理訪問次數

# 將使用者重新導向至原網址
return HttpResponsePermanentRedirect(url.orign_url)
return HttpResponseRedirect(url.orign_url)

except Url.DoesNotExist:
logger.warning(f'短網址不存在: {short_string}')
Expand Down
35 changes: 35 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
version: '3.8'

services:
web:
build:
context: .
dockerfile: .devcontainer/Dockerfile
command: sleep infinity
volumes:
- .:/workspace
ports:
- "8000:8000"
depends_on:
- postgresql
- redis

postgresql:
image: postgres:13
environment:
POSTGRES_DB: mydatabase
POSTGRES_USER: myuser
POSTGRES_PASSWORD: mypassword
volumes:
- postgres_data:/var/lib/postgresql/data

redis:
image: redis:latest
ports:
- "6379:6379"
volumes:
- redis_data:/data

volumes:
postgres_data:
redis_data:
5 changes: 4 additions & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,7 @@ sentry-sdk
django-silk

# 圖片處理
Pillow
Pillow

# 資料庫
psycopg2-binary

0 comments on commit 53e8f21

Please sign in to comment.