حول ماذا ولماذا ولماذا؟
قررت أن أكتب هذه المذكرة الصغيرة بعد تجربتي الخاصة في نشر "بنية تحتية" شخصية تتكون من عدة تطبيقات للشؤون اليومية.
سأخبرك هنا بكيفية نشر الخدمات للتحكم في الشؤون المالية ( FireFly3 ) والملاحظات وما هو أكبر ( BookStack ) والتحكم في الوقت الذي تقضيه في المهام في المشاريع مفتوحة المصدر أو في العمل ( Titra ) - كل هذا على Vultr مع الحماية باستخدام مجموعات جدار الحماية والوصول فقط من عنوان IP الضروري ، على سبيل المثال ، إحصائيات المنزل أو vpn (سنقوم بتوسيع Pritunl لهذا الغرض).
اخترت Vultr لأنني أعمل معه لفترة طويلة وأعرف بالفعل ما يمكنه وما لا يمكنه - في حالتي ، جاء بشكل مثالي.
نأمل أن يكون هذا مفيد لشخص ما.
نشر الخدمات
بالنسبة للخدمات (الثلاثة جميعها) ، اخترت مثالًا بسيطًا على النسخ الاحتياطية التلقائية Vultr + ، نظرًا لأن جميعها لا تتطلب الكثير من الموارد.
.: , DNS, (certbot), , , personal.io, :)
. 2: — docker, , .
— FireFly3
. : , - , - .
FireFly3 , , .. ..
firefly3 , docker, . docker-compose c firefly :
version: '3.3' services: fireflyiii: image: jc5x/firefly-iii:latest volumes: - firefly_iii_upload:/var/www/html/storage/upload env_file: - .env restart: unless-stopped ports: - 127.0.0.1:34567:8080 depends_on: - fireflyiiidb fireflyiiidb: image: yobasystems/alpine-mariadb:latest restart: unless-stopped env_file: - .env.db volumes: - firefly_iii_db:/var/lib/mysql volumes: firefly_iii_upload: driver: local firefly_iii_db: driver: local
, env- , , : , (SMTP MAILGUN), , (, , eloquent LDAP), , finance.personal.io. env- ( ) pastebin .
firefly3 , nginx proxypass , .
, .. — BookStack
/, - , , BookStack — , , markdown ( , ), : --.
, .
docker-compose.yml:
version: "3.1" services: bookstack: image: linuxserver/bookstack container_name: bookstack volumes: - bookstack-volume:/config ports: - 127.0.0.1:34568:80 env_file: - .env.bookstack restart: unless-stopped depends_on: - bookstack_db bookstack_db: image: linuxserver/mariadb container_name: bookstack_db volumes: - bookstack-db:/config env_file: - .env.db restart: unless-stopped volumes: bookstack-volume: driver: local bookstack-db: driver: local
, firefly, web .
.env.bookstack:
DB_HOST=bookstack_db DB_USER=bookstack DB_PASS=bookstackpassword DB_DATABASE=bookstackapp APP_URL=https://notes.personal.io
, admin , .
bookstack LDAP, SAML — . pdf html, , .. .
— Titra
, , , . Titra , , (, ), ( ), ..
docker-compose.yml:
version: "3.1" services: titra: image: kromit/titra container_name: titra depends_on: - mongodb ports: - "127.0.0.1:34569:3000" env_file: - .env.titra restart: always mongodb: image: mongo:4.2 container_name: mongodb restart: always volumes: - titra_db:/data/db volumes: titra_db: driver: local
.env.titra:
ROOT_URL=https://titra.personal.io MONGO_URL=mongodb://mongodb/titra
: — Homer
, , , , . , heimdall homer, , .
Homer , , (, ).
docker-compose.yml:
version: "3.3" services: homer: image: b4bz/homer:latest volumes: - ./assets:/www/assets ports: - "127.0.0.1:34570:8080" restart: unless-stopped
homer assets config.yml, , .
:
title: "Infrastructure" subtitle: "Personal" documentTitle: "Personal/Infrastructure" icon: "fas fa-skull-crossbones" header: true columns: "3" theme: default colors: dark: highlight-primary: "#3367d6" highlight-secondary: "#4285f4" highlight-hover: "#5a95f5" background: "#131313" card-background: "#2b2b2b" text: "#eaeaea" text-header: "#ffffff" text-title: "#fafafa" text-subtitle: "#f5f5f5" card-shadow: rgba(0, 0, 0, 0.4) link-hover: "#ffdd57" services: - name: "Main" icon: "fas fa-code-branch" items: - name: "Titra" icon: "fas fa-clock" subtitle: "time-tracking" url: "https://titra.personal.io" - name: "FireFly3" icon: "fas fa-piggy-bank" subtitle: "finance" url: "https://finance.personal.io" - name: "BookStack" icon: "fas fa-book" subtitle: "notes-articles-book" url: "https://notes.personal.io"
:
home.personal.io
, nginx certbot. , : apps.conf
nginx:
systemctl start nginx
, A- DNS , home, notes, finance, titra ip Vultr, certbot Let's Encrypt, :
certbot run --nginx
, .
, , :
- Prtinul
- firewall Vultr
, firewall vultr ( )
"Add firewall group".
, , , 22 , - VPN. , :
, , .
.








