البنية التحتية لأنبوب الاستضافة الذاتية على Vultr







حول ماذا ولماذا ولماذا؟



قررت أن أكتب هذه المذكرة الصغيرة بعد تجربتي الخاصة في نشر "بنية تحتية" شخصية تتكون من عدة تطبيقات للشؤون اليومية.







سأخبرك هنا بكيفية نشر الخدمات للتحكم في الشؤون المالية ( FireFly3 ) والملاحظات وما هو أكبر ( BookStack ) والتحكم في الوقت الذي تقضيه في المهام في المشاريع مفتوحة المصدر أو في العمل ( Titra ) - كل هذا على Vultr مع الحماية باستخدام مجموعات جدار الحماية والوصول فقط من عنوان IP الضروري ، على سبيل المثال ، إحصائيات المنزل أو vpn (سنقوم بتوسيع Pritunl لهذا الغرض).







اخترت Vultr لأنني أعمل معه لفترة طويلة وأعرف بالفعل ما يمكنه وما لا يمكنه - في حالتي ، جاء بشكل مثالي.







نأمل أن يكون هذا مفيد لشخص ما.







نشر الخدمات



بالنسبة للخدمات (الثلاثة جميعها) ، اخترت مثالًا بسيطًا على النسخ الاحتياطية التلقائية Vultr + ، نظرًا لأن جميعها لا تتطلب الكثير من الموارد.













.: , DNS, (certbot), , , personal.io, :)







. 2: — docker, , .







— FireFly3



Demo







. : , - , - .







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



Demo







/, - , , 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



Demo







, , , . 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



Demo







, , , , . , 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
      
      





, .









, , :







  1. Prtinul
  2. firewall Vultr


, ( 60 ) pritunl vultr .







, firewall vultr ( )















  1. "Add firewall group".







  2. , , , 22 , - VPN. , :















  1. , , .







  2. .










All Articles