نحوه تنظیم سرور Leanote در CentOS 7

Leanote یک جایگزین رایگان ، سبک و منبع آزاد برای Evernote است که در Golang نوشته شده است. با توجه به تجربه کاربری کاربر ، Leanote بسیاری از ویژگی های عملی از جمله پشتیبانی از سیستم متقابل ، نوشتن به زبان نحوی MarkDown ، وبلاگ نویسی عمومی یا خصوصی ، جمع آوری دانش و اشتراک گذاری و همکاری تیم را در اختیار کاربران قرار می دهد.

در این مقاله ، شما را از طریق تنظیم سرور Leanote در نمونه سرور CentOS 7 راهنمایی می کنم. برای اهداف امنیتی ، امکان HTTPS supportاستفاده از گواهینامه Let Encrypt SSL و Nginx نیز پوشش داده می شود.

پیش نیازها

  • به عنوان مثال سرور جدید Vultr CentOS 7 مستقر شده است. بگویید آدرس IPv4 آن است 203.0.113.1.
  • یک کاربر سودو نامگذاری شده است leanote.
  • تمامی بسته های نرم افزاری موجود در دستگاه با استفاده از repo EPEL YUM آخرین وضعیت پایدار به روز شده اند. جزئیات را اینجا ببینید .
  • دامنه ای leanote.example.comکه به عنوان مثال سرور ذکر شده در بالا نشان داده می شود.

مرحله 1: یک پرونده مبادله ایجاد کنید

هنگام شلیک به عنوان مثال سرور جدید Vultr CentOS 7 ، همیشه توصیه می شود که یک فایل مبادله را تنظیم کنید تا اطمینان حاصل شود که این سیستم هموار کار نمی کند. به عنوان مثال ، ایجاد پرونده مبادله ای با اندازه 2048MB برای دستگاهی با حافظه 2 گیگابایتی مناسب است.

sudo dd if=/dev/zero of=/swapfile count=2048 bs=1M
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile   none    swap    sw    0   0' | sudo tee -a /etc/fstab
free -m

توجه: اگر از یک اندازه سرور متفاوت استفاده می کنید ، ممکن است نیاز به تغییر اندازه پرونده swap داشته باشید.

مرحله 2: پرونده های باینری Leanote 2.6.1 را بدست آورید

آخرین نسخه پایدار Leanote را برای سیستم 64 بیتی لینوکس بارگیری و استخراج کنید:

cd
wget https://sourceforge.net/projects/leanote-bin/files/2.6.1/leanote-linux-amd64-v2.6.1.bin.tar.gz
tar -zxvf leanote-linux-amd64-v2.6.1.bin.tar.gz

مرحله 3: نصب MongoDB Community Edition 4.0

همانطور که توسط Leanote لازم است ، قبل از اینکه بتوانید با موفقیت یک سرور Leanote را راه اندازی کنید ، MongoDB NoSQL DBMS باید در محل باشد.

repo MongoDB 4.0 YUM را تنظیم کنید

repo MongoDB 4.0 YUM را به شرح زیر ایجاد کنید:

cat <<EOF | sudo tee /etc/yum.repos.d/mongodb-org-4.0.repo
[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/\$releasever/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
EOF

بسته های MongoDB 4.0 را با استفاده از YUM نصب کنید

تمام قطعات و ابزارهای MongoDB را با استفاده از repo MongoDB 4.0 YUM که قبلاً ایجاد شده است نصب کنید:

sudo yum install -y mongodb-org

پیکربندی SELinux برای MongoDB 4.0

به طور پیش فرض ، MongoDB 27017هنگام کار از پورت استفاده می کند ، در صورتی که SELinux در enforcingدستگاه CentOS 7 در حالت باشد ، مجاز نیست . برای تأیید حالت فعلی SELinux از دستور زیر استفاده کنید:

sudo getenforce

در نمونه سرور Vultr CentOS 7 ، SELinux به طور پیش فرض غیرفعال است. بنابراین خروجی دستور فوق:

Disabled

در این حالت ، می توانید دستورالعمل های زیر را برای پیکربندی SELinux جست و خیز کنید و حرکت کنید.

اما اگر نمونه اصلی سرور CentOS 7 را اجرا می کنید ، خروجی دستور فوق خواهد بود Enforcing. قبل از شروع کار و فعال کردن سرویس MongoDB ، باید یکی از سه گزینه زیر را انجام دهید.

  • گزینه 1: به MongoDB اجازه دهید از 27017پورت استفاده کند

    sudo semanage port -a -t mongod_port_t -p tcp 27017
    
  • گزینه 2: SELinux را غیرفعال کنید

    sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
    sudo shutdown -r now
    
  • گزینه 3: SELinux را به permissiveحالت تغییر دهید

    sudo sed -i 's/SELINUX=enforcing/SELINUX=permissive/' /etc/selinux/config
    sudo shutdown -r now
    

سرویس MongoDB را شروع کرده و پس از راه اندازی مجدد سیستم ، آن را شروع کنید:

sudo systemctl start mongod.service
sudo systemctl enable mongod.service

مرحله 4: داده های اولیه Leanote را به MongoDB وارد کنید

از دستورات زیر برای وارد کردن داده های اولیه Leanote به MongoDB استفاده کنید:

rm /home/leanote/leanote/mongodb_backup/leanote_install_data/.DS_Store
mongorestore --host localhost -d leanote --dir /home/leanote/leanote/mongodb_backup/leanote_install_data/

مرحله 5: تأیید هویت MongoDB

برای اهداف امنیتی ، شما باید کنترل دسترسی به MongoDB را درست بعد از به روزرسانی سرویس MongoDB فعال کنید. برای این منظور ، شما باید حداقل دو حساب کاربری MongoDB ایجاد کنید: یک حساب کاربری کاربر و یک حساب سرور بانک اطلاعاتی. همچنین باید تنظیمات MongoDB را تغییر دهید.

وارد پوسته MongoDB شوید:

mongo --host 127.0.0.1:27017

تغییر به adminپایگاه داده:

use admin

یک سرور کاربر به نام خود ایجاد کنید useradminکه از رمز عبور استفاده کند useradminpassword:

db.createUser({ user: "useradmin", pwd: "useradminpassword", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] })

توجه: مدیر کاربر useradminقرار است تمام کاربران MongoDB را مدیریت کند ، بنابراین انتخاب رمزعبور قوی است. البته یک نکته مطمئن تر برای جایگزین useradminکردن نام کاربری سخت پیش بینی شده است.

تغییر به leanoteپایگاه داده:

use leanote

یک سرور پایگاه داده به نام خود ایجاد کنید leanoteadminکه از رمز عبور استفاده کند leanoteadminpassword:

db.createUser({ user: "leanoteadmin", pwd: "leanoteadminpassword", roles: [{ role: "dbOwner", db: "leanote" }] })

توجه : باز هم توصیه می شود یک نام کاربری کمتر شناخته شده و رمز عبور سخت گیر را انتخاب کنید.

با ایجاد کاربران MongoDB می توانید نتایج را تأیید کنید:

use admin
db.auth("useradmin", "useradminpassword")

مدیر پایگاه داده را تأیید کنید:

use leanote
db.auth("leanoteadmin", "leanoteadminpassword")

هر دو به 1عنوان تأیید نتیجه می گیرند.

از پوسته MongoDB خارج شوید:

exit

برای فعال کردن کنترل دسترسی به MongoDB ، شما همچنین باید دو خط را به پرونده پیکربندی MongoDB اضافه کنید /etc/mongod.conf، به شرح زیر:

sudo bash -c "echo 'security:' >> /etc/mongod.conf"
sudo bash -c "echo '  authorization: enabled' >> /etc/mongod.conf"

سرویس MongoDB را مجدداً اجرا کنید تا تغییرات به مرحله اجرا درآیند:

sudo systemctl restart mongod.service

از این پس ، فقط می توانید از دو حساب کاربری برای دسترسی و مدیریت MongoDB ، useradminبرای مدیریت همه کاربران MongoDB و تنها leanoteadminبرای مدیریت leanoteبانک اطلاعات استفاده کنید.

مرحله ششم: پیکربندی Leanote

از فایل پیکربندی Leanote نسخه پشتیبان تهیه کنید /home/leanote/leanote/conf/app.conf:

cd /home/leanote/leanote/conf/
cp app.conf app.conf.bak

viبرای باز کردن پرونده پیکربندی Leanote از ویرایشگر استفاده کنید:

vi app.conf

سطرهای زیر را یک به یک پیدا کنید:

site.url=http://localhost:9000
db.username= # if not exists, please leave it blank
db.password= # if not exists, please leave it blank
app.secret=V85ZzBeTnzpsHyjQX4zukbQ8qqtju9y2aDM55VWxAH9Qop19poekx3xkcDVvrD0y

مطابق شکل زیر آنها را به ترتیب جایگزین کنید:

site.url=http://leanote.example.com:9000
db.username=leanoteadmin
db.password=leanoteadminpassword
app.secret=E52tyCDBRk39HmhdGYJLBS3etXpnz7DymmxkgHBYxd7Y9muWVVJ5QZNdDEaHV2sA

توجه: برای اهداف امنیتی ، مقدار app.secretپارامتر MUST باید یک رشته تصادفی 64 بیتی باشد که با نمونه اصلی متفاوت است. مطمئن شوید که مقدار را E52tyCDBRk39HmhdGYJLBS3etXpnz7DymmxkgHBYxd7Y9muWVVJ5QZNdDEaHV2sAبا مقدار تصادفی 64 بیتی خود جایگزین کنید.

ذخیره نموده و خارج شوید:

:wq!

مرحله 7: Leanote را شروع کنید

به منظور اجازه ترافیک ورودی TCP در درگاه ، قوانین فایروال را اصلاح کنید 9000:

sudo firewall-cmd --permanent --add-port=9000/tcp
sudo systemctl reload firewalld.service

Leanote را با استفاده از اسکریپت رسمی شروع کنید:

cd /home/leanote/leanote/bin
bash run.sh

پس از مشاهده Listening on.. 0.0.0.0:9000، مرورگر وب مورد علاقه خود را http://leanote.example.com:9000برای شروع استفاده از سایت Leanote نشان دهید.

برای ورود به سیستم از حساب مدیر پیش فرض Leanote استفاده کنید:

  • نام کاربری: admin
  • کلمه عبور: abc123

برای اهداف امنیتی ، باید رمزعبور پیش فرض را بلافاصله پس از ورود به سیستم تغییر دهید.

مرحله 8: HTTPSدسترسی را فعال کنید

در حال حاضر ، شما می توانید با استفاده از پروتکل HTTP ، یک پروتکل کمتر ایمن ، به سرور Leanote دسترسی پیدا کنید. به منظور بهبود امنیت سیستم ، می توانید HTTPSبا استفاده از گواهی Letry Encrypt SSL و پروکسی معکوس Nginx بر روی دستگاه خود را فعال کنید.

به درستی تنظیم یک نام میزبان و نام دامنه کاملاً واجد شرایط (FQDN)

قبل از به دست آوردن گواهی نامه Let Encrypt SSL ، باید نام میزبان و FQDN را به درستی تنظیم کنید.

ابتدا ، CTRL+ را فشار دهید Cتا اسکریپت Leanote متوقف شود run.sh.

بعد ، نام میزبان و FQDN را به شرح زیر تنظیم کنید:

sudo hostnamectl set-hostname leanote
cat <<EOF | sudo tee /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
203.0.113.1 leanote.example.com leanote
EOF

شما همچنین می توانید نتایج را تأیید کنید:

hostname
hostname -f

قوانین فایروال را اصلاح کنید

ترافیک ورودی در بندر را مسدود کرده 9000و اجازه ورود به ورودی در بنادر HTTPو HTTPSخدمات را فراهم کنید:

sudo firewall-cmd --permanent --remove-port=9000/tcp
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld.service

برای صدور گواهینامه Letry Encrypt SSL اقدام کنید

برنامه Certbot را نصب کنید:

sudo yum -y install yum-utils
sudo yum-config-manager --enable rhui-REGION-rhel-server-extras rhui-REGION-rhel-server-optional
sudo yum install -y certbot

برای گواهی Letry Encrypt SSL برای دامنه درخواست کنید leanote.example.com:

sudo certbot certonly --standalone --agree-tos --no-eff-email -m [email protected] -d leanote.example.com

گواهی و زنجیره به شرح زیر ذخیره می شود:

/etc/letsencrypt/live/leanote.example.com/fullchain.pem

پرونده کلید خصوصی به شرح زیر ذخیره می شود:

/etc/letsencrypt/live/leanote.example.com/privkey.pem

به طور پیش فرض ، گواهی Let Encrypt SSL طی سه ماه منقضی می شود. همانطور که در زیر نشان داده شده است ، می توانید یک کار cron را تنظیم کنید تا مجوزهای رمزگذاری شده خود را رمزگذاری کنید

sudo crontab -e

مطبوعات Iرا وارد کنید insertحالت، و ورودی پس از آن خط های زیر است:

0 0,12 * * * python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew

ذخیره نموده و خارج شوید:

:wq!

این کار cron سعی خواهد کرد که گواهی Let Encrypt را هر روز ظهر تمدید کند.

Nginx را به عنوان یک پروکسی معکوس نصب کنید

Nginx را با استفاده از repo EPEL YUM نصب کنید:

sudo yum install -y nginx

برای Leanote یک پرونده پیکربندی ایجاد کنید:

cat <<EOF | sudo tee /etc/nginx/conf.d/leanote.conf
# Redirect HTTP to HTTPS
server {
    listen      80;
    server_name leanote.example.com;
    return      301 https://\$server_name\$request_uri;
}

server {

    # Setup HTTPS certificates
    listen       443 default ssl;
    server_name  leanote.example.com;
    ssl_certificate      /etc/letsencrypt/live/leanote.example.com/fullchain.pem;
    ssl_certificate_key  /etc/letsencrypt/live/leanote.example.com/privkey.pem;

    # Proxy to the Leanote server
    location / {
        proxy_set_header X-Real-IP         \$remote_addr;
        proxy_set_header X-Forwarded-For   \$proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header X-Forwarded-Host  \$http_host;
        proxy_set_header Host              \$http_host;
        proxy_max_temp_file_size           0;
        proxy_pass                         http://127.0.0.1:9000;
        proxy_redirect                     http:// https://;
    }
}
EOF

Nginx را دوباره اجرا کنید تا تغییرات خود را به مرحله اجرا برساند:

sudo systemctl daemon-reload
sudo systemctl restart nginx.service
sudo systemctl enable nginx.service

تغییر site.urlتنظیمات در فایل پیکربندی Leanote:

cd /home/leanote/leanote/conf/
vi app.conf

خط زیر را پیدا کنید:

site.url=http://leanote.example.com:9000

جایگزینش کن:

site.url=https://leanote.example.com

ذخیره نموده و خارج شوید:

:wq!

دوباره اسکریپت Leanote را اجرا کنید:

cd /home/leanote/leanote/bin
bash run.sh

اکنون ، مرورگر وب مورد علاقه خود را به آن اشاره کنید http://leanote.example.com/و متوجه می شوید که HTTPSپروتکل به طور خودکار فعال می شود. فقط adminبا گذرواژه جدیدی که قبلاً تنظیم کرده اید به عنوان کاربر وارد سیستم شوید یا حساب های کاربری جدیدی را برای همکاری تیم ثبت کنید.

مجدداً CTRL+ را فشار دهید Cتا اسکریپت Leanote متوقف شود. بعداً این اسکریپت را کم رنگ خواهیم کرد.

مرحله 9: wkhtmltopdfبرنامه را نصب کنید

Leanote استفاده از این wkhtmltopdfبرنامه را برای صادر کردن صفحات HTML به عنوان فایلهای PDF انتخاب می کند. نصب wkhtmltopdf:

cd
wget https://downloads.wkhtmltopdf.org/0.12/0.12.5/wkhtmltox-0.12.5-1.centos7.x86_64.rpm
sudo yum localinstall -y wkhtmltox-0.12.5-1.centos7.x86_64.rpm
which wkhtmltopdf

فراموش نکنید که wkhtmltopdfمسیر باینری را /usr/local/bin/wkhtmltopdfدر Export PDFبخش در داشبورد سرور وب Leanote وقتی Leanote دوباره فعال شد ، ارسال کنید.

توجه: اگر در پرونده های PDF صادر شده کاراکترهای غیرقابل خواندن پیدا کردید ، می توانید با افزودن پرونده های فونت مورد نیاز به /usr/share/fonts/دایرکتوری ، مشکل را برطرف کنید .

مرحله 10: برای نگه داشتن و اجرای اسکریپت Leanote از Supervisor استفاده کنید

برای اینکه سایت Leanote خود را آنلاین نگه دارید ، می توانید از ابزار Supervisor برای شروع خودکار اسکریپت Leanote در صورت خرابی استفاده کنید.

سرپرست را با استفاده از YUM نصب کنید:

sudo yum install -y supervisor

یک .iniفایل ناظر ساده برای Leanote ایجاد کنید:

cat <<EOF | sudo tee /etc/supervisord.d/leanote.ini
[program:leanote]
command=bash /home/leanote/leanote/bin/run.sh
directory=/home/leanote/leanote/bin/
priority=999
autostart=true
autorestart=true
user=leanote
redirect_stderr=true
EOF

سرویس Supervisor و سرویس Leanote را شروع کنید:

sudo supervisord -c /etc/supervisord.conf

وضعیت سرویس Leanote را تأیید کنید:

sudo supervisorctl status leanote

خروجی شبیه به موارد زیر خواهد بود:

leanote                          RUNNING   pid 3707, uptime 0:02:36


Leave a Comment

نحوه نصب بستر سبد خرید LiteCart در اوبونتو 16.04

نحوه نصب بستر سبد خرید LiteCart در اوبونتو 16.04

LiteCart یک بستر سبد خرید آزاد و منبع باز است که به زبان های PHP ، jQuery و HTML 5 نوشته شده است. این نرم افزار ساده ، سبک و با کاربرد آسان است.

نحوه نصب Anchor CMS بر روی یک VPS Fedora 26 LAMP

نحوه نصب Anchor CMS بر روی یک VPS Fedora 26 LAMP

با استفاده از یک سیستم متفاوت؟ Anchor CMS یک سیستم مدیریت محتوا (CMS) بسیار ساده و بسیار سبک ، بسیار آزاد و آزاد است.

اشتراک NFS را در Debian تنظیم کنید

اشتراک NFS را در Debian تنظیم کنید

NFS یک سیستم فایل مبتنی بر شبکه است که به رایانه ها اجازه می دهد تا از طریق شبکه رایانه ای به فایلها دسترسی پیدا کنند. این راهنما توضیح می دهد که چگونه می توانید پوشه ها را روی NF قرار دهید

نحوه بروزرسانی CentOS 7 ، Ubuntu 16.04 و Debian 8

نحوه بروزرسانی CentOS 7 ، Ubuntu 16.04 و Debian 8

هنگام راه اندازی سرور جدید لینوکس ، به روزرسانی سیستم های هسته و سایر بسته ها تا آخرین نسخه پایدار یک روش توصیه شده است. در این مقاله

نحوه نصب Matomo Analytics در Fedora 28

نحوه نصب Matomo Analytics در Fedora 28

با استفاده از یک سیستم متفاوت؟ Matomo (سابقا پیویک) یک بستر تحلیلی منبع باز است ، یک جایگزین باز برای Google Analytics. منبع Matomo میزبان o

یک سرور TeamTalk را در لینوکس تنظیم کنید

یک سرور TeamTalk را در لینوکس تنظیم کنید

TeamTalk یک سیستم کنفرانس است که به کاربران امکان می دهد مکالمات صوتی / تصویری با کیفیت بالا ، چت متنی ، انتقال فایل ها و صفحه های به اشتراک بگذارند. من

با استفاده از کلید SSH خود برای ورود به کاربران غیر ریشه استفاده کنید

با استفاده از کلید SSH خود برای ورود به کاربران غیر ریشه استفاده کنید

Vultr یک ویژگی را فراهم می کند که به شما امکان می دهد با ایجاد یک نمونه جدید ، کلیدهای SSH را از قبل نصب کنید. این اجازه می دهد تا به کاربر root دسترسی داشته باشید ، با این حال ، th

نحوه نصب انجمن NodeBB در FreeBSD 12

نحوه نصب انجمن NodeBB در FreeBSD 12

با استفاده از یک سیستم متفاوت؟ NodeBB یک نرم افزار انجمن مبتنی بر Node.js است. از سوکت های وب برای تعامل فوری و اعلامیه های زمان واقعی استفاده می کند. NodeB

نصب و راه اندازی ZNC در اوبونتو

نصب و راه اندازی ZNC در اوبونتو

ZNC یک پیشرانه پیشرفته شبکه IRC است که تمام وقت بهم متصل می شود تا مشتری IRC بتواند بدون از دست دادن جلسه گپ قطع یا وصل شود.

نحوه نصب Ranger Terminal File Manager در لینوکس

نحوه نصب Ranger Terminal File Manager در لینوکس

رنجر یک مدیر فایل مبتنی بر خط فرمان است که دارای کلیدهای اتصال VI است. این برنامه یک رابط لعنتی مینیمالیستی و زیبا با نمای سلسله مراتب فهرست ارائه می دهد