Files
honeyDueAPI/docs/Dokku_notes
Trey t bbf3999c79 Add task templates API and admin management
- Add TaskTemplate model with category and frequency support
- Add task template repository with CRUD and search operations
- Add task template service layer
- Add public API endpoints for templates (no auth required):
  - GET /api/tasks/templates/ - list all templates
  - GET /api/tasks/templates/grouped/ - templates grouped by category
  - GET /api/tasks/templates/search/?q= - search templates
  - GET /api/tasks/templates/by-category/:id/ - templates by category
  - GET /api/tasks/templates/:id/ - single template
- Add admin panel for task template management (CRUD)
- Add admin API endpoints for templates
- Add seed file with predefined task templates
- Add i18n translations for template errors

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-05 09:07:53 -06:00

151 lines
4.2 KiB
Plaintext

wget -NP . https://dokku.com/install/v0.36.10/bootstrap.sh
sudo DOKKU_TAG=v0.36.10 bash bootstrap.sh
# make sure authorized_keys has value first
cat ~/.ssh/authorized_keys | dokku ssh-keys:add admin
dokku domains:set-global 45.56.68.144
sudo dokku apps:create mycrib
sudo dokku plugin:install https://github.com/dokku/dokku-postgres.git
sudo dokku postgres:create mycrib
sudo dokku plugin:install https://github.com/dokku/dokku-redis.git redis
sudo dokku redis:create mycrib
sudo dokku postgres:link mycrib mycrib
sudo dokku redis:link mycrib mycrib
sudo dokku config:set --no-restart mycrib SECRET_KEY=wz%C*@^*wKZK9bV3CBMt7cj3wk2y^0vdu@2*pz7yco+p=7@sa%
dokku storage:mount mycrib /var/lib/dokku/data/storage/mycrib:/code/media/
# add remote dokku server as a remote repo in git
# this has to be done for git to be able to use the right key
Host mycribDev
HostName 104.200.20.223
User root
PreferredAuthentications publickey
IdentityFile /Users/treyt/.ssh/linode_88oakapps
IdentitiesOnly yes
AddKeysToAgent yes
git remote add dokku dokku@mycribDev:mycrib
# to push
git push dokku@mycribDev:mycrib develop
sudo dokku domains:add mycrib mycrib.treytartt.com
sudo dokku plugin:install https://github.com/dokku/dokku-letsencrypt.git
sudo dokku config:set --no-restart --global DOKKU_LETSENCRYPT_EMAIL=mycrib@treymail.com
sudo dokku letsencrypt:set mycrib email mycrib@treymail.com
sudo dokku letsencrypt:enable mycrib
sudo dokku letsencrypt:cron-job --add
sudo dokku plugin:install https://github.com/dokku/dokku-redirect.git
# media
dokku storage:ensure-directory mycrib
dokku storage:mount mycrib /var/lib/dokku/data/storage/mycrib/media:/code/media
# Make sure your settings.py has:
MEDIA_URL = '/media/'
MEDIA_ROOT = '/code/media/' # This matches the container path you mounted
dokku enter mycrib
chown -R dokku:dokku media # gives invalid user?
chmod -R 755 media
# make sure storage is listed
dokku storage:list mycrib
# list
/var/lib/dokku/data/storage/mycrib:/code/media/
# add location conf
nano /home/dokku/mycrib/nginx.conf.d/media.conf
# paste in
location /media/ {
alias /var/lib/dokku/data/storage/mycrib/;
}
# Unmount storage (if needed)
dokku storage:unmount mycrib /var/lib/dokku/data/storage/mycrib:/app/media
# helpful commands
# restart app
dokku ps:restart mycrib
# enter docker container
dokku enter mycrib web
#check if debug
dokku run werkout python manage.py shell
from django.conf import settings
print(settings.DEBUG)
exit()
# clear out space
docker builder prune -a
docker system prune -a
# create super user
dokku run mycrib python manage.py createsuperuser
# postgres info
dokku postgres:info your-database-db
postgres://postgres:bf8f1cb443c35cd1ae0a58617ef348cd@dokku-postgres-your-database-db:5432/your_database_db
[database type]://[username]:[password]@[host]:[port]/[database name]
# show env
dokku config:show mycrib
# show how dokku is doing
dokku ps:report
# check workers are working
dokku ps:scale mycrib
# if not
dokku ps:scale mycrib web=1 worker=3 beat=1
# added this b/c claude told me to but doesnt look to be needed
dokku config:set mycrib \
SECURE_PROXY_SSL_HEADER="HTTP_X_FORWARDED_PROTO,https" \
USE_X_FORWARDED_HOST="True"
# dev smtp stuff
dokku config:set --no-restart mycrib \
EMAIL_BACKEND="django.core.mail.backends.smtp.EmailBackend" \
EMAIL_HOST="smtp.fastmail.com" \
EMAIL_PORT="587" \
EMAIL_USE_TLS="True" \
EMAIL_HOST_USER="treytartt@fastmail.com" \
EMAIL_HOST_PASSWORD="2t9y4n4t497z5863" \
DEFAULT_FROM_EMAIL="MyCrib <crib@treymail.com>"
# for prod
dokku config:set mycrib \
APNS_AUTH_KEY_PATH="/code/push_certs/AuthKey_5PP558G7W7.p8" \
APNS_AUTH_KEY_ID="5PP558G7W7" \
APNS_TEAM_ID="V3PF3M6B6U" \
APNS_TOPIC="com.tt.mycrib.MyCribDev" \
APNS_USE_SANDBOX="False"
dokku config:set casera-api \
APNS_AUTH_KEY_PATH=/app/push_certs/AuthKey_9R5Q7ZX874.p8 \
APNS_AUTH_KEY_ID=9R5Q7ZX874 \
APNS_TEAM_ID=V3PF3M6B6U \
APNS_TOPIC=com.tt.casera.CaseraDev \
APNS_PRODUCTION=true
Production (mycribProdText):
dokku config:set mycrib GUNICORN_WORKERS=6 GUNICORN_THREADS=2
dokku ps:scale mycrib web=3
Development (mycribDev):
dokku config:set mycrib GUNICORN_WORKERS=4 GUNICORN_THREADS=1
dokku ps:scale mycrib web=1
# view worker logs
dokku logs mycrib worker -t