نحوه نصب بستر سبد خرید LiteCart در اوبونتو 16.04
LiteCart یک بستر سبد خرید آزاد و منبع باز است که به زبان های PHP ، jQuery و HTML 5 نوشته شده است. این نرم افزار ساده ، سبک و با کاربرد آسان است.
Wekan یک تخته kanban است که با چهارچوب Meteor JavaScript ساخته شده است. این یک جایگزین منبع باز و خود میزبان Trello به حساب می آید ، تقریباً ویژگی های مشابهی را ارائه می دهد. این اجازه می دهد تا شما را به ایجاد لیست های مدیریت بر اساس کارت "به انجام". Wekan برای افزایش بهره وری هنگام کار در یک محیط مشترک بسیار مفید است. Wekan دارای یک رابط وب کاملاً پاسخگو است و به طور فعال در بسیاری از زبان ها ترجمه می شود.
برای این آموزش ، ما به wekan.example.com
عنوان نام دامنه که به سمت نمونه Vultr اشاره شده است ، استفاده خواهیم کرد. لطفاً حتماً تمام وقایع نام دامنه را با نمونه واقعی جایگزین کنید.
سیستم پایه خود را با استفاده از راهنمای نحوه به روزرسانی اوبونتو 16.04 به روز کنید . پس از به روزرسانی سیستم ، نصب وابستگی ها را انجام دهید.
Wekan فقط پشتیبانی می کند Node.js LTS version 4.8
. برای نصب Node.js از مدیر نسخه گره استفاده خواهیم کرد. نصب nvm
با اجرای اسکریپت نصب.
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.4/install.sh | bash
برای شروع فوراً استفاده nvm
، این کار را انجام دهید.
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
اگر nvm
با موفقیت نصب شده باشد ، باید بتوانید نسخه آن را بررسی کنید.
user@vultr:~$ nvm --version
0.33.4
Node.js. را نصب کنید
nvm install v4.8
نسخه پیش فرض Node.js. را تنظیم کنید.
nvm use node
اگر Node.js با موفقیت نصب شده است ، پس باید نسخه آن را بررسی کنید.
node -v
این خروجی را مشاهده خواهید کرد.
user@vultr:~$ node -v
v4.8.4
NVM Node.js را فقط برای کاربر فعلی نصب می کند. برای دسترسی به Node.js در سطح جهان ، این کار را اجرا کنید.
n=$(which node);n=${n%/bin/node}; chmod -R 755 $n/bin/*; sudo cp -r $n/{bin,lib,share} /usr
Node.js اکنون به عنوان موجود است /usr/bin/node
.
user@vultr:~$ sudo which node
/usr/bin/node
MongoDB یک سرور پایگاه داده رایگان و منبع باز NoSQL است. برخلاف بانکهای اطلاعاتی سنتی که از جداول برای سازماندهی داده های خود استفاده می کنند ، MongoDB به صورت اسناد محور است و از اسناد مشابه JSON بدون طرح استفاده می کند. Wekan از MongoDB برای ذخیره اطلاعات خود استفاده می کند.
Wekan فقط با آن سازگار است MongoDB version 3.2
. یک فایل مخزن جدید ایجاد کنید.
echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
کلید عمومی GPG MongoDB را وارد کنید و لیست بسته ها را به روز کنید.
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
sudo apt update
MongoDB را نصب کنید.
sudo apt install -y mongodb-org
MongoDB را شروع کنید و آن را فعال کنید تا به صورت خودکار شروع شود.
sudo systemctl start mongod
sudo systemctl enable mongod
به طور پیش فرض ، هیچ احراز هویتی در سرور MongoDB فعال نیست. هر کاربری که به ترمینال سرور دسترسی داشته باشد ، در نصب MongoDB امتیازات کاملی خواهد داشت. برای ایمن سازی سرور دیتابیس و محدود کردن دسترسی یک کاربر غیر شخصی ، باید احراز هویت را روی سرور تنظیم کنیم.
MongoDB mongo
پوسته ای را فراهم می کند که برای اجرای نمایش داده ها در MongoDB استفاده می شود. به mongo
پوسته تغییر دهید.
mongo
یک کاربر جدید MongoDB با امتیازات اصلی ایجاد کنید. می توانید از هر نام کاربری مورد نظر خود استفاده کنید. لطفاً حتماً رمز را جایگزین کنید .
db.createUser(
{
user: "admin",
pwd: "StrongAdminPassword",
roles: [ { role: "root", db: "admin" } ]
}
)
شما باید خروجی زیر را ببینید.
user@vultr:~$ mongo
MongoDB shell version: 3.2.17
connecting to: test
Welcome to the MongoDB shell.
...
2017-09-30T18:11:40.274+0000 I CONTROL [initandlisten]
> db.createUser(
... {
... user: "admin",
... pwd: "StrongAdminPassword",
... roles: [ { role: "root", db: "admin" } ]
... }
... )
Successfully added user: {
"user" : "admin",
"roles" : [
{
"role" : "root",
"db" : "admin"
}
]
}
با فشار دادن " Ctrl+C
" از رابط فرمان MongoDB به ترمینال لینوکس خارج شوید .
پرونده پیکربندی MongoDB را ویرایش کنید.
sudo nano /etc/mongod.conf
در انتهای پرونده خط زیر را اضافه کنید.
security:
authorization: enabled
MongoDB را مجدداً راه اندازی کنید تا تغییرات پیکربندی بتواند عملی شود.
sudo systemctl restart mongod
اکنون که امنیت فعال شده است ، می توانید با جابجایی دوباره در پوسته mongo با استفاده از mongo
دستور ، آزمایش کنید. این بار ، اگر پرس و جوئی را اجرا کنید ، مانند show dbs
نشان دادن لیست پایگاه داده ها ، می توانید یک مجوز پیام داده شده را گزارش کنید. خروج به sudo
کاربر دوباره بعد از تست ورود به سیستم به عنوان کاربر جدید شما فقط ایجاد شده است.
به عنوان administrator
کاربری که تازه ایجاد کرده اید وارد شوید.
mongo -u admin -p
رمز ورود کاربر را برای ورود موفقیت آمیز تهیه کنید. کاربر جدیدی برای wekan
دیتابیس ایجاد کنید که برای ذخیره داده های Wekan استفاده می شود.
use wekan
db.createUser(
{
user: "wekan",
pwd: "StrongPassword",
roles: ["readWrite"]
}
)
مطمئن شوید که آن را StrongPassword
با یک رمزعبور قوی جایگزین کنید . خروجی زیر را مشاهده خواهید کرد.
user@vultr:~$ mongo -u admin -p
MongoDB shell version: 3.2.17
Enter password:
connecting to: test
...
2017-09-30T18:13:26.007+0000 I CONTROL [initandlisten]
>
> use wekan
switched to db wekan
> db.createUser(
... {
... user: "wekan",
... pwd: "StrongPassword",
... roles: ["readWrite"]
... }
... )
Successfully added user: { "user" : "wekan", "roles" : [ "readWrite" ] }
آخرین نسخه انتشار Wekan در Github را بررسی کنید زیرا نسخه های جدید بسیار مکرر هستند. آخرین نسخه Wekan را از Github جایگزین لینک بسته نصب کنید.
cd ~
wget https://github.com/wekan/wekan/releases/download/v0.44/wekan-0.44.tar.gz
بایگانی بارگیری شده را در یک فهرست جدید به نام استخراج کنید wekan
.
mkdir wekan
tar xzvf wekan-*.tar.gz -C wekan
وابستگی های Node.js را نصب کنید.
cd wekan/bundle/programs/server && npm install
سرور Wekan پیکربندی های متغیرهای محیط را می خواند. دستورات زیر را اجرا کنید تا پیکربندی ها به عنوان متغیرهای محیط تنظیم شوند.
export MONGO_URL='mongodb://wekan:[email protected]:27017/wekan?authSource=wekan'
export ROOT_URL='http://wekan.example.com'
export MAIL_URL='smtp://user:[email protected]:25/'
export MAIL_FROM='[email protected]'
export PORT=4000
حتماً کلمه عبور MongoDB را برای wekan
کاربری که ایجاد کرده اید جایگزین کنید. همچنین ، نشانی اینترنتی نامه را مطابق با تنظیمات سرور SMTP خود به روز کنید. اگر سرور ایمیل آماده نیستید ، همیشه می توانید بعداً این پیکربندی را تغییر دهید.
برای شروع فوری برنامه.
cd ~/wekan/bundle
node main.js
اکنون می توانید با رفتن به برنامه به برنامه دسترسی پیدا کنید http://wekan.example.com:4000
. رابط کاربری را برای ورود به صفحه Wekan kanban مشاهده خواهید کرد.
برای استفاده در تولید ، توصیه می شود یک پروکسی معکوس برای خدمت به برنامه در HTTP
پورت استاندارد و یک systemd
سرویس برای مدیریت فرایند برنامه تنظیم کنید. در این آموزش ، ما از سرور وب Nginx به عنوان یک پروکسی معکوس استفاده خواهیم کرد ، که با SSL رمزگذاری می شود.
Certbot PPA
مخزن را به سیستم اضافه کنید.
sudo add-apt-repository ppa:certbot/certbot
sudo apt update
Nginx و Certbot را که برنامه مشتری برای Let Encrypt CA است نصب کنید.
sudo apt -y install certbot nginx
توجه: نام دامنه ای که شما برای به دست آوردن گواهینامه ها از Let Let Encrypt CA استفاده می کنید باید به سمت سرور هدایت شود. مشتری قبل از صدور گواهینامه ، اعتبار دامنه را تأیید می کند .
صدور گواهینامه SSL را ایجاد کنید.
sudo certbot certonly --standalone -d wekan.example.com
گواهینامه های تولید شده احتمالاً در /etc/letsencrypt/live/wekan.example.com/
دایرکتوری ذخیره می شوند . گواهینامه SSL به عنوان ذخیره می شود fullchain.pem
، و کلید خصوصی نیز به عنوان ذخیره می شود privkey.pem
.
بیایید مجوزهای رمزگذاری در مدت 90 روز منقضی شوند ، بنابراین توصیه می شود با استفاده از Cronjob تجدید خودکار گواهینامه ها را تنظیم کنید. Cron یک سرویس سیستم است که برای انجام کارهای دوره ای استفاده می شود.
پرونده کار cron را باز کنید.
sudo crontab -e
در انتهای پرونده خط زیر را اضافه کنید.
30 5 * * * /usr/bin/certbot renew --quiet
کار cron فوق هر روز در 5:30 دقیقه صبح انجام می شود. اگر گواهینامه ها برای انقضا موقت باشند ، آنها به طور خودکار آنها را تمدید می کنند.
یک میزبان مجازی جدید ایجاد کنید.
sudo nano /etc/nginx/sites-available/wekan.example.com.conf
پرونده را با موارد زیر جمع کنید.
upstream wekan {
server 127.0.0.1:4000;
}
server {
listen 80;
listen [::]:80;
server_name wekan.example.com;
location / {
if ($ssl_protocol = "") {
rewrite ^ https://$server_name$request_uri? permanent;
}
}
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name wekan.example.com;
add_header Strict-Transport-Security "max-age=15768000";
ssl_certificate /etc/letsencrypt/live/wekan.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/wekan.example.com/privkey.pem;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
ssl_prefer_server_ciphers on;
ssl_stapling on;
ssl_stapling_verify on;
error_page 497 https://$host:$server_port$request_uri;
location / {
proxy_pass http://wekan;
proxy_http_version 1.1;
proxy_set_header Host $host:$server_port;
proxy_set_header Referer $http_referer;
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-Ssl on;
proxy_set_header X-Nginx-Proxy true;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_redirect off;
proxy_send_timeout 86400;
proxy_read_timeout 86400;
}
}
wekan.example.com
نام اصلی دامنه خود را در پیکربندی فوق جایگزین کنید.
سایت تازه اضافه شده را فعال کنید.
sudo ln -s /etc/nginx/sites-available/wekan.example.com.conf /etc/nginx/sites-enabled/wekan.example.com.conf
Nginx را مجدداً راه اندازی کنید تا تغییرات مؤثر واقع شوند.
sudo systemctl restart nginx
Nginx را فعال کنید تا به طور خودکار در زمان بوت شروع شود.
sudo systemctl enable nginx
برای اجرای فرایند ، یک کاربر جدید ایجاد کنید.
sudo adduser wekan --shell /usr/sbin/nologin --home /opt/wekan
اکنون همه پرونده ها را به /opt/wekan
فهرست راهنما منتقل کنید.
sudo mv ~/wekan/* /opt/wekan/
مالکیت پرونده ها را به کاربر تازه ایجاد شده ارائه دهید.
sudo chown -R wekan:wekan /opt/wekan
Wekan داده ای را از هیچ پرونده پیکربندی دریافت نمی کند. در عوض ، از متغیرهای محیط به آن دسترسی پیدا می کند. ما یک فایل جدید برای ذخیره متغیرهای محیط ایجاد خواهیم کرد. پرونده حاوی متغیرهای محیط از طریق Systemd
سرویس ارسال می شود.
یک فایل جدید برای ذخیره متغیرهای محیط ایجاد کنید.
sudo nano /opt/wekan/config.env
پرونده را با محتوای زیر پر کنید.
MONGO_URL='mongodb://wekan:[email protected]:27017/wekan?authSource=wekan'
ROOT_URL='http://wekan.example.com'
MAIL_URL='smtp://user:[email protected]:25/'
MAIL_FROM='[email protected]'
PORT=4000
HTTP_FORWARDED_COUNT=1
لطفا مطمئن شوید که جایگزین username
و password
.
wekan
با اجرای برنامه مالکیت را در اختیار کاربر قرار دهید.
sudo chown -R wekan:wekan /opt/wekan/config.env
یک سرویس سرویس جدید برای سرویس Wekan systemd ایجاد کنید.
sudo nano /etc/systemd/system/wekan.service
پرونده را با موارد زیر جمع کنید.
[Unit]
Description=Wekan Server
After=syslog.target
After=network.target
[Service]
Type=simple
Restart=on-failure
StartLimitInterval=86400
StartLimitBurst=5
RestartSec=10
ExecStart=/usr/bin/node /opt/wekan/bundle/main.js
EnvironmentFile=/opt/wekan/config.env
ExecReload=/bin/kill -USR1 $MAINPID
RestartSec=10
User=wekan
Group=wekan
WorkingDirectory=/opt/wekan
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=Wekan
[Install]
WantedBy=multi-user.target
پرونده را ذخیره کرده و از ویرایشگر خارج شوید. اکنون می توانید به راحتی Wekan را شروع کنید.
sudo systemctl start wekan
برای فعال کردن Wekan به طور خودکار در زمان بوت شدن.
sudo systemctl enable wekan
برای بررسی وضعیت سرویس Wekan.
sudo systemctl status wekan
اکنون می توانید به عنوان مثال Wekan دسترسی پیدا کنید https://wekan.example.com
. با ایجاد یک حساب کاربری جدید شروع کنید. پس از ایجاد حساب کاربری ، می توانید دسترسی اداری به کاربر تازه ایجاد شده را فعال کنید. به عنوان کاربر اداری وارد پوسته MongoDB شوید.
mongo -u wekan -p --authenticationDatabase "wekan"
اکنون wekan
پایگاه داده را انتخاب کرده و برای ارتقاء کاربر به کاربر سرپرست ، شی را به روز کنید.
use wekan
db.users.update({username:'admin_user'},{$set:{isAdmin:true}})
لطفاً مطمئن شوید که admin_user
نام کاربری واقعی کاربر را ایجاد کرده اید. از رابط سرپرست ، می توانید خود ثبت نام را غیرفعال کنید و تنظیمات SMTP را به روز کنید.
تبریک می گویم ، تخته Wekan Kanban را با موفقیت در نمونه Vultr اوبونتو نصب کرده اید.
LiteCart یک بستر سبد خرید آزاد و منبع باز است که به زبان های PHP ، jQuery و HTML 5 نوشته شده است. این نرم افزار ساده ، سبک و با کاربرد آسان است.
با استفاده از یک سیستم متفاوت؟ Anchor CMS یک سیستم مدیریت محتوا (CMS) بسیار ساده و بسیار سبک ، بسیار آزاد و آزاد است.
NFS یک سیستم فایل مبتنی بر شبکه است که به رایانه ها اجازه می دهد تا از طریق شبکه رایانه ای به فایلها دسترسی پیدا کنند. این راهنما توضیح می دهد که چگونه می توانید پوشه ها را روی NF قرار دهید
هنگام راه اندازی سرور جدید لینوکس ، به روزرسانی سیستم های هسته و سایر بسته ها تا آخرین نسخه پایدار یک روش توصیه شده است. در این مقاله
با استفاده از یک سیستم متفاوت؟ Matomo (سابقا پیویک) یک بستر تحلیلی منبع باز است ، یک جایگزین باز برای Google Analytics. منبع Matomo میزبان o
TeamTalk یک سیستم کنفرانس است که به کاربران امکان می دهد مکالمات صوتی / تصویری با کیفیت بالا ، چت متنی ، انتقال فایل ها و صفحه های به اشتراک بگذارند. من
Vultr یک ویژگی را فراهم می کند که به شما امکان می دهد با ایجاد یک نمونه جدید ، کلیدهای SSH را از قبل نصب کنید. این اجازه می دهد تا به کاربر root دسترسی داشته باشید ، با این حال ، th
با استفاده از یک سیستم متفاوت؟ NodeBB یک نرم افزار انجمن مبتنی بر Node.js است. از سوکت های وب برای تعامل فوری و اعلامیه های زمان واقعی استفاده می کند. NodeB
ZNC یک پیشرانه پیشرفته شبکه IRC است که تمام وقت بهم متصل می شود تا مشتری IRC بتواند بدون از دست دادن جلسه گپ قطع یا وصل شود.
رنجر یک مدیر فایل مبتنی بر خط فرمان است که دارای کلیدهای اتصال VI است. این برنامه یک رابط لعنتی مینیمالیستی و زیبا با نمای سلسله مراتب فهرست ارائه می دهد