Встановіть TaskServer (taskd) на CentOS 7

TaskWarrior — це інструмент керування часом з відкритим вихідним кодом, який є вдосконаленням програми Todo.txt та її клонів. У зв’язку з тим, що середня людина використовує кілька пристроїв/платформ у своєму щоденному розкладі, важливо мати можливість мати централізоване сховище, де можна отримати доступ до даних та оновити їх із будь-якого пристрою. У цьому підручнику буде зосереджено на налаштуванні сервера, який називається TaskServer (taskd), і клієнта під назвою TaskWarrior (завдання), що дозволяє кільком клієнтським пристроям безпечно отримувати доступ до даних і обмінюватися ними.

Він має такі особливості:

  • Необмежена кількість завдань
  • Розстановка пріоритетів завдань
  • Пошукова фільтрація
  • Маркування
  • Автоматична синхронізація
  • Автоматичне резервне копіювання
  • Повний контроль і конфіденційність
  • Шифрований зв'язок

Передумови

  • Примірник сервера CentOS 7 x64.
  • Користувач sudo .
  • Доменне ім'я вказує на екземпляр Vultr ( taskd.example.com )

Крок 1: Оновіть систему

Увійдіть як ваш користувач sudo, щоб встановити репозиторій EPEL та оновити систему наступним чином:

sudo yum install epel-release -y
sudo yum clean all && sudo yum update -y

Крок 2. Установіть RPM Build та інструменти для створення

Репозиторій EPEL не містить RPM для TaskServer (taskd), тому ми повинні самі побудувати його з джерела в пакет RPM.

  1. Встановіть інструменти GCC, Make, RPM Build, розробку та підписання.

    sudo yum install gcc gcc-c++ make rpmdevtools rpm-sign rpm-build -y
    
  2. Створіть каталог GnuPG, який міститиме файли GPG, необхідні для підписання нашого RPM.

    mkdir .gnupg
    
  3. При створенні ключа нам потрібна ентропія в системі, щоб правильно його рандомізувати. rngdДемон генерує ентропії необхідно з /dev/urandom. Тож давайте встановимо це зараз.

    yum install rngd -y
    
  4. Запустіть rngdдемон для створення ентропії. Параметр -r вказує на /dev/urandomзамість значення за замовчуванням /dev/hwrng.

    sudo rngd -r /dev/urandom
    
  5. Згенеруйте ключ. Параметр --gen-key повідомляє gpg генерувати нову пару ключів.

    gpg --gen-key
    
  6. Для параметра " Будь ласка, виберіть тип ключа, який ви хочете: " виберіть " (1) RSA і RSA (за замовчуванням) " для типу ключа, ввівши 1 і натиснувши клавішу Return/Enter .

  7. Для параметра " Який розмір ключа ви хочете? (2048) " виберіть значення за замовчуванням, натиснувши клавішу Return/Enter .

  8. Для параметра " Будь ласка, вкажіть, як довго ключ має бути дійсним ", виберіть значення за замовчуванням, натиснувши клавішу Return/Enter .

  9. Для параметра « Це правильно? (y/N) » введіть y та натисніть клавішу Return/Enter .

  10. У розділі " Справжнє ім'я: " введіть потрібне ім'я та натисніть клавішу Return/Enter .

  11. У розділі « Адреса електронної пошти: » введіть вибрану адресу електронної пошти та натисніть клавішу повернення/введення .

  12. За бажанням розділ « Коментар:» можна залишити порожнім.

  13. Внесіть необхідні зміни, якщо ви ввели неправильну інформацію. Якщо ви задоволені відображеною інформацією USER-ID , введіть O (велика літера O, а не нуль) і натисніть клавішу Return/Enter .

  14. Тепер GnuPG запропонує вам створити та перевірити пароль для вашої пари ключів.

  15. Після того, як ви введете свої паролі, ваша пара ключів GnuPG буде створена в .gnupgкаталозі у вашому каталозі користувача.

  16. Виконайте цю команду, щоб відобразити вміст .gnupgкаталогу. Він повинен містити такий каталог private-keys-v1.dі файли pubring.gpg, pubring.gpg~, random_seed, secring.gpg, S.gpg-agent, trustdb.gpg.

    ls -la .gnupg
    
  17. Експортуйте створену пару ключів. Параметр --export наказує GnuPG експортувати пару ключів. Параметр -a вказує GnuPG вивести пару ключів у форматі броні ascii . Замініть " Joe Q. Public " на ім'я, яке ви ввели під час створення пари ключів на кроці № 10 вище. Замініть " jqpublic " будь-яким текстом, який ви виберете.

    gpg --export -a 'Joe Q. Public' > RPM-GPG-KEY-jqpublic
    
  18. Імпортуйте пару ключів у сховище ключів RPM. Замініть " jqpublic " текстом, який ви вибрали на кроці № 17.

    sudo rpm --import RPM-GPG-KEY-jqpublic
    
  19. Переконайтеся, що пара ключів була додана до сховища ключів RPM. Параметр --q gpg-pubkey запитує сховище ключів RPM GnuPG. % {Ім'я} -% {версія} -% {випуск} ->% {Резюме} \ п відображає результат в легкому для читання форматі.

    rpm -q gpg-pubkey --qf '%{name}-%{version}-%{release} --> %{summary}\n'
    
  20. Створивши .rpmmacros file, RPM можна налаштувати для виконання призначених поведінок (наприклад: полегшити автоматичне підписання RPM). Використовуйте nanoпрограму для створення файлу.

    nano .rpmmacros
    
  21. Потім додайте наступний текст нижче до .rpmmacrosфайлу.

    %_gpg_name  Joe Q. Public
    %_query_all_fmt %%{name}-%%{version}-%%{release}.%%{arch}
    %_signature gpg
    %_topdir %(echo $HOME)/rpmbuild
    
  22. Збережіть документ, ввівши наступні комбінації клавіатури. У CTRL + X Ключі. Потім клавіша S. Нарешті, клавіша повернення/введення .

  23. Ця команда нижче налаштує ваше середовище збірки RPM. Це додасть додаткові макроси до .rpmmacrosфайлу, який ви створили на кроці №20, і створить необхідні каталоги для створення та зберігання RPM.

    rpmdev-setuptree
    
  24. Виконайте цю команду, щоб відобразити вміст каталогу rpmbuild. Він повинен містити такі каталоги SOURCES , RPMS , BUILD , SRPMS і SPECS .

    find rpmbuild
    
  25. Завантажте вихідний код TaskServer (taskd) до rpmbuild/SOURCESкаталогу.

    wget https://taskwarrior.org/download/taskd-1.1.0.tar.gz -P rpmbuild/SOURCES/
    
  26. Припиніть запущений rgndпроцес.

    sudo kill -9 rngd
    

Крок 3. Створіть RPM TaskServer (taskd) з джерела

  1. Щоб створити новий RPM з джерела, необхідно створити файл SPEC TaskServer (taskd).

    nano rpmbuild/SPECS/taskd.spec
    
  2. Додайте наведений нижче текст у taskd.specфайл.

    Name:           taskd
    Version:        1.1.0
    Release:        1%{?dist}
    Summary:        Secure server providing multi-user, multi-client access to task data
    Group:          Applications/Productivity
    License:        MIT
    URL:            http://tasktools.org/projects/taskd.html
    Source0:        http://taskwarrior.org/download/%{name}-%{version}.tar.gz
    Source1:        taskd.service
    Source2:        taskd-config
    Source3:        taskd.xml
    
    BuildRequires:  cmake
    BuildRequires:  libuuid-devel
    BuildRequires:  gnutls-devel
    BuildRequires:  shadow-utils
    
    
    %if 0%{?rhel} && 0%{?rhel} <= 6
    # On rhel, we don't need systemd to build.  but we do on centos.        
    # ...just to define some macros
    %else
    BuildRequires:  systemd
    %endif
    
    # For certificate generation        
    Requires:       gnutls-utils
    
    # Systemd requires
    Requires(post):    systemd
    Requires(preun):   systemd
    Requires(postun):  systemd
    
    %description
    The TaskServer is a lightweight, secure server providing multi-user,
    multi-client access to task data.  This allows true syncing between desktop and
    mobile clients.
    
    Users want task list access from multiple devices running software of differing
    sophistication levels to synchronize data seamlessly.  Synchronization requires
    the ability to exchange transactions between devices that may not have
    continuous connectivity, and may not have feature parity.
    
    The TaskServer provides this and builds a framework to go several steps beyond
    merely synchronizing data.
    
    %prep
    %setup -q %{name}-%{version}
    
    %build
    %cmake
    make %{?_smp_mflags}
    
    %install
    make install DESTDIR=%{buildroot}
    
    mkdir -p %{buildroot}%{_sharedstatedir}/taskd/
    
    # Users will keep their keys here, but we copy some helpful scripts too.
    mkdir -p %{buildroot}%{_sysconfdir}/pki/taskd/
    cp -a pki/generate* %{buildroot}%{_sysconfdir}/pki/taskd/.
    
    mkdir -p %{buildroot}%{_localstatedir}/log/taskd/
    
    %if 0%{?rhel} && 0%{?rhel} <= 6
    # EL6 and earlier needs a sysvinit script
    # Also, no firewalld on old EL
    %else
    mkdir -p %{buildroot}%{_unitdir}/
    cp -a %{SOURCE1} %{buildroot}%{_unitdir}/taskd.service
    
    mkdir -p %{buildroot}%{_prefix}/lib/firewalld/services
    cp -a %{SOURCE3} %{buildroot}%{_prefix}/lib/firewalld/services/taskd.xml
    %endif
    
    mkdir -p %{buildroot}%{_sharedstatedir}/taskd/orgs/
    cp -a %{SOURCE2} %{buildroot}%{_sharedstatedir}/taskd/config
    
    rm -r %{buildroot}%{_datadir}/doc/taskd/
    
    %pre
    getent group taskd >/dev/null || groupadd -r taskd
    getent passwd taskd >/dev/null || \
        useradd -r -g taskd -d %{_sharedstatedir}/taskd/ -s /usr/bin/sh \
        -c "Task Server system user" taskd
    exit 0
    
    # Systemd scriptlets
    %if 0%{?rhel} && 0%{?rhel} <= 6
    # No systemd for el6
    %else
    
    %post
    %systemd_post taskd.service
    
    %preun
    %systemd_preun taskd.service
    
    %postun
    %systemd_postun_with_restart taskd.service
    
    %endif
    
    
    %files
    %doc AUTHORS COPYING ChangeLog NEWS README
    %{_bindir}/taskd
    %{_bindir}/taskdctl
    %{_mandir}/man1/taskd.1.*
    %{_mandir}/man1/taskdctl.1.*
    %{_mandir}/man5/taskdrc.5.*
    
    %{_sysconfdir}/pki/taskd/generate*
    
    %dir %attr(0750, taskd, taskd) %{_sysconfdir}/pki/taskd/
    %dir %attr(0750, taskd, taskd) %{_localstatedir}/log/taskd/
    
    %dir %attr(0750, taskd, taskd) %{_sharedstatedir}/taskd/
    %config(noreplace) %attr(0644, taskd, taskd) %{_sharedstatedir}/taskd/config
    %dir %attr(0750, taskd, taskd) %{_sharedstatedir}/taskd/orgs/
    
    %if 0%{?rhel} && 0%{?rhel} <= 6
    # No sysvinit files for el6
    %else
    %{_unitdir}/taskd.service
    %{_prefix}/lib/firewalld/services/taskd.xml
    %endif
    
    %changelog
    * Thu Aug 17 2017 Jarrett Graham <[email protected]> - 1.1.0
    - Initial packaging.
    
  3. The RPM also requires three additional files that must be created in the rpmbuild/SOURCES directory. Use the nano program to create the taskd-config file.

    nano rpmbuild/SOURCES/taskd-config
    
  4. Add the following text below into the taskd-config file.

    # taskd configuration file
    confirmation=1
    verbose=1
    ip.log=on
    extensions=/usr/libexec/taskd
    queue.size=10
    request.limit=1048576
    server=0.0.0.0:53589
    root=/var/lib/taskd
    log=/var/log/taskd/taskd.log
    pid.file=/var/run/taskd.pid
    ca.cert=/etc/pki/taskd/ca.cert.pem
    server.cert=/etc/pki/taskd/server.cert.pem
    server.key=/etc/pki/taskd/server.key.pem
    server.crl=/etc/pki/taskd/server.crl.pem
    
  5. Use the nano program to create the taskd.service file.

    nano rpmbuild/SOURCES/taskd.service
    
  6. Add the following text below into the taskd.service file.

    [Unit]
    Description=Secure server providing multi-user, multi-client access to task data
    After=network.target
    Documentation=https://tasktools.org/projects/taskd.html
    
    [Service]
    ExecStart=/usr/bin/taskd server --data /var/lib/taskd
    Type=simple
    User=taskd
    Group=taskd
    
    [Install]
    WantedBy=multi-user.target
    
  7. Use the nano program to create the taskd.xml file.

    nano rpmbuild/SOURCES/taskd.xml
    
  8. Add the following text below into the taskd.xml file.

    <?xml version="1.0" encoding="utf-8"?>
    <service>
      <short>Task-warrior server</short>
      <description>This option allows you to connect to the task warrior server.</description>
      <port protocol="tcp" port="53589"/>
    </service>
    
  9. In order to build the TaskServer (taskd) RPM, three packages are required for building. Run the command below to install those packages.

    sudo yum install cmake libuuid-devel gnutls-devel gnutls-utils -y
    
  10. Now it is time to build from source and create an RPM for TaskServer (taskd). Run the commands below to get started. It should take less than a minute on a 1x CPU Vultr instance to build the RPMs. Enter the GnuPG password you created in step #14 to sign the RPM when prompted.

    cd rpmbuild/SPECS/
    rpm -ba -sign taskd.spec
    
  11. Install the TaskServer (taskd) RPM.

    cd
    sudo rpm -ivh rpmbuild/RPMS/x86_64/taskd-1.1.0-1.el7.centos.x86_64.rpm
    

Step 4: Configure TaskServer (task)

  1. In order for TaskServer (taskd) to communicate and sync with TaskWarrior (task) clients, you will need to use the generation scripts found under /etc/pki/taskd/ to generate server and client certificates/keys. Elevate to the root user using the command below and change directory to /etc/pki/taskd.

    sudo su -
    cd /etc/pki/taskd/
    
  2. Use the nano program to create a vars file in order to generate a self-signed Root CA.

    nano vars
    

    Add the following text below into the vars file. Change ORGANIZATION, CN, COUNTRY, STATE and LOCALITY to your satisfaction.

    BITS=4096
    EXPIRATION_DAYS=365
    ORGANIZATION="Vultr.com Inc."
    CN=taskd.example.com
    COUNTRY=US
    STATE="New York"
    LOCALITY="New York"
    
  3. Generate the self-signed Root CA, certificate, server key and server revocation list (optional).

    ./generate.ca
    ./generate.server
    ./generate.crl
    

    These commands will create the following files (ca.cert.pem, ca.key.pem, server.cert.pem, server.key.pem and server.crl.pem) inside the /etc/pki/taskd/ directory. In order for TaskServer (taskd) to start, the ownership and permissions on the certificates and keys generated in step #37 must be modified to allow TaskServer (taskd) to access them. Run the commands below to change them.

    chown taskd.taskd ca.cert.pem ca.key.pem server.cert.pem server.crl.pem server.key.pem
    chmod 400 ca.cert.pem ca.key.pem server.cert.pem server.crl.pem server.key.pem
    
  4. Enable and start the TaskServer (taskd) daemon.

    systemctl enable taskd
    systemctl start taskd
    
  5. Open the port in the firewall TaskServer (taskd) runs on.

    firewall-cmd --permanent --zone=public --add-port=53589/tcp
    firewall-cmd --reload
    

    TaskServer (taskd) is now installed and setup on your CentOS 7 instance.

Step 5: Configure TaskWarrior client certificate and key

  1. You must create client certificates and key to encrypt communications between TaskServer (taskd) and TaskWarrior (task). Run the command below to generate a client certificate and key. Replace NAME with a name you can easily recognize for your client.

    generate.client NAME
    

    This command will create the following files (NAME.cert.pem, NAME.key.pem) inside of the /etc/pki/taskd/ directory.

  2. Copy the following files to your user directory, change the ownership and permissions. Substitute joeqpublic below with your actual username directory.

    cp ca.cert.pem NAME.cert.pem NAME.key.pem /home/joeqpublic/
    chown joeqpublic.joeqpublic /home/joeqpublic/*.pem
    chmod 400 /home/joeqpublic/*.pem
    
  3. Create a zip archive of the certificates and key.

    zip certficates.zip ca.cert.pem NAME.cert.pem NAME.key.pem
    
  4. Use scp (command line) or WinSCP (GUI frontend for SCP) to download the certificates.zip file from your CentOS instance to your client device (computer/laptop/smartphone).

  5. Drop root privileges and perform the rest of your commands as your regular user.

    exit
    

    TaskServer (taskd) is now setup and ready for TaskWarrior (task) clients to connect.

Step 6: Create your first TaskWarrior group and user

  1. In order to create, delete, modify and sync your tasks, you will need a user account. However, before you can add users, you will first need to create an organizational group. Run the command below to create your first group. Replace GROUP with an easily recognizable name.

  2. IMPORTANT! The taskd command to create groups/users must be ran as the taskd user. Running as the root user will create directories and files owned by the root user under /var/lib/taskd/orgs which will prevent TaskWarrior (task) clients from being able to access or modify anything in the group to which they have been assigned. Access will be denied.

    sudo -u taskd taskd add org GROUP --data /var/lib/taskd
    
  3. Now, that you've created your first group, let's create your first user. Run the command below to create a user assigned to the group created in step #1. Copy and paste the generated user key, user and group in a text file. Repeat the process to add additional users.

    sudo -u taskd taskd add user GROUP 'Joe. Q. Public' --data /var/lib/taskd
    

Step 7: Install TaskWarrior clients

Windows 10 (Build later than 1607+)

To use TaskWarrior (task) on Windows 10, you need to install the Windows Subsystem For Linux from the Windows Store.

  1. To install WSL, an elevated Powershell prompt is required. Press the Window Key and type powershell. Right click on Windows Powershell at the top of the results and select "Run as administrator". At the User Account Control prompt, click Yes. Copy and paste the text found below in the Powershell windows. When WSL finishes installing, press the Y Key to restart Windows.

    Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
    
  2. Після перезавантаження відкрийте командний рядок і введіть таку команду bash . Це встановить Ubuntu на Windows. Натисніть Y Key . Тепер його буде завантажено та розпаковано. Виберіть ім'я користувача та пароль.

    bash
    
  3. Тепер настав час встановити TaskWarrior (завдання). Введіть таку команду всередині консолі.

    sudo apt-get install task -y
    
  4. Двічі введіть exit, щоб вийти з терміналу bash і командного рядка Windows.

  5. Натисніть кнопку меню «Пуск». Введіть ubuntu . Клацніть правою кнопкою миші на Bash в Ubuntu в Windows . Виберіть Закріпити на панелі завдань . Це забезпечує зручність для швидкого доступу до bash для доступу до TaskWarrior (завдання).

  6. Натисніть на щойно створену піктограму Ubuntu на панелі завдань. Це відкриє вікно терміналу під керуванням Bash. Введіть таку команду нижче, щоб створити каталог даних TaskWarrior (завдання) ( ~/.task/) і файл конфігурації ( .taskrc).

    task version
    yes
    
  7. Вам потрібно перемістити certificates.zipфайл, який ви зберегли раніше під час налаштування TaskServer, у ~/.taskd/каталог всередині вашого каталогу користувача. Щоб витягти файли з zip-файлу, unzipспочатку встановіть програму. Скопіюйте та вставте наведені нижче команди, замінивши фактичне розташування вашої копії certificates.zip.

    sudo apt-get install unzip -y
    cp /mnt/c/User/WINDOWSUSER/Desktop/certificates.zip .
    cd .task
    unzip ../certificates.zip
    cd
    
  8. Введіть наступні команди, щоб налаштувати TaskWarrior (завдання) для підключення до TaskServer (taskd). Замініть NAME на те, що ви назвали своєму сертифікату та ключу, GROUP на створену групу, Joe Q. Public на ім’я користувача, яке ви створили, і XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX на ключ, призначений, коли ваш користувач було створено на сервері TaskWarrior (taskd).

    task config taskd.ca -- ~/.task/ca.cert.pem
    task config taskd.certificate -- ~/.task/**NAME**.cert.pem
    task config taskd.key -- ~/.task/**NAME**.key.pem
    task config taskd.server -- taskd.example.com:53589
    task config taskd.credentials -- GROUP/Joe Q. Public/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX
    
  9. Тепер настав час синхронізувати TaskWarrior (завдання) з TaskServer (taskd). Виконайте наведену нижче команду, щоб ініціалізувати базу даних.

    task sync init
    

    Синхронізація між клієнтом TaskWarrior (завдання) і TaskServer (taskd) тепер налаштована на платформі Windows 10.

Android

Щоб використовувати TaskWarrior (завдання) на Android, вам потрібно встановити TaskWarrior для Android із магазину Google Play.

  1. Установіть програму TaskWarrior (завдання) для Android у Google Play Store.

  2. Відкрийте програму TaskWarrior (завдання) для Android.

  3. Програма запропонує вам створити обліковий запис із бажаною назвою облікового запису . Введіть ім’я, яке ви вибрали під час створення імені користувача для користувача TaskServer (taskd).

  4. Залиште для папки даних значення за замовчуванням <<Створити новий>> і натисніть кнопку OK . Використовуйте програму менеджера файлів, щоб створити папку в кореневому сховищі (наприклад: /storage/emulate/0/Certs). Надішліть програму у фоновий режим.

  5. Скопіюйте certificates.zipфайл, який ви створили раніше, і розпакуйте його вміст у свій каталог, створений на кроці №4.

  6. На передньому плані програма «TaskWarrior (завдання) для Android» і торкніться меню у верхньому лівому куті програми, щоб відкрити його.

  7. Прокрутіть вниз до нижньої частини меню та торкніться параметра Налаштування .

  8. Це відкриє простий вбудований текстовий редактор програми TaskWarrior For Android.

  9. Введіть наступні параметри, щоб налаштувати синхронізацію з TaskServer (taskd). Замініть змінні taskd.ca/ taskd.certificate/taskd.key` на фактичний шлях(и) до каталогу ca/certificate/key, NAME — на те, що ви назвали своєму сертифікату та ключу, GROUP — на створену групу, Joe Q. Public — на створене вами ім’я користувача та XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX з ключем, призначеним під час створення користувача на сервері TaskWarrior (taskd).

    taskd.ca=/storage/emulate/0/Certs/ca.cert.pem
    taskd.certificate=/storage/emulate/0/Certs/NAME.cert.pem
    taskd.credentials=GROUP/Joe Q. Public/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
    taskd.key=/storage/emulate/0/Certs/NAME.key.pem
    taskd.server=taskd.example.com:53589
    
  10. Торкніться значка дискети, щоб зберегти налаштування.

Синхронізація між клієнтом TaskWarrior (завдання) і TaskServer (taskd) тепер налаштована на платформі Android.

Linux

  1. Зверніться до розділу дистрибутива TaskWarrior (завдання), щоб встановити його для вашого конкретного дистрибутива Linux .

  2. Відкрийте вікно терміналу. Введіть таку команду нижче, щоб створити каталог даних TaskWarrior (завдання) ( ~/.task/) і файл конфігурації ( .taskrc).

    task version
    yes
    
  3. Вам потрібно перемістити certificates.zipфайл, який ви зберегли раніше в налаштуваннях TaskServer, до ~/.taskd/каталогу всередині вашого каталогу користувача. Щоб витягти файли з zip-файлу, unzipспочатку встановіть програму для вашого конкретного дистрибутива. Скопіюйте та вставте наведені нижче команди, замінивши фактичне розташування вашої копії certificates.zip.

    cp /location/of/certificates.zip .
    cd .task
    unzip ../certificates.zip
    cd
    
  4. Введіть наступні команди, щоб налаштувати TaskWarrior (завдання) для підключення до TaskServer (taskd). Замініть NAME на те, що ви назвали своєму сертифікату та ключу, GROUP на створену вами групу, Joe Q. Public на ім’я користувача, яке ви створили, і XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX на ключ, призначений, коли ваш користувач було створено на сервері TaskWarrior (taskd).

    task config taskd.ca -- ~/.task/ca.cert.pem
    task config taskd.certificate -- ~/.task/**NAME**.cert.pem
    task config taskd.key -- ~/.task/**NAME**.key.pem
    task config taskd.server -- taskd.example.com:53589
    task config taskd.credentials -- GROUP/Joe Q. Public/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX
    
  5. Тепер настав час синхронізувати TaskWarrior (завдання) з TaskServer (taskd). Виконайте наведену нижче команду, щоб ініціалізувати базу даних.

    task sync init
    

Додаток: якщо ви запускаєте Gnome Shell, є розширення під назвою TaskWhisper, яке інтегрується з TaskWarrior (завдання).

Синхронізація між вашим клієнтом TaskWarrior (завдання) і TaskServer (taskd) тепер налаштована на вашому улюбленому дистрибутиві Linux.


Встановіть Plesk на CentOS 7

Встановіть Plesk на CentOS 7

Використання іншої системи? Plesk — це власна панель керування веб-хостом, яка дозволяє користувачам адмініструвати свої персональні та/або клієнтські веб-сайти, бази даних

Як встановити Squid Proxy на CentOS

Як встановити Squid Proxy на CentOS

Squid — популярна безкоштовна програма для Linux, яка дозволяє створювати веб-проксі для переадресації. У цьому посібнику ви дізнаєтеся, як встановити Squid на CentOS, щоб перетворити вас

Як встановити Lighttpd (LLMP Stack) на CentOS 6

Як встановити Lighttpd (LLMP Stack) на CentOS 6

Вступ Lighttpd — це форк Apache, який має набагато меншу ресурсомісткість. Він легкий, звідси його назва, і досить простий у використанні. Встановити

Налаштування статичної мережі та IPv6 на CentOS 7

Налаштування статичної мережі та IPv6 на CentOS 7

VULTR нещодавно вніс зміни на свою сторону, і тепер усе має працювати нормально з коробки з увімкненим NetworkManager. Якщо ви бажаєте вимкнути

Змінення Icinga2 для використання моделі Master/Client на CentOS 6 або CentOS 7

Змінення Icinga2 для використання моделі Master/Client на CentOS 6 або CentOS 7

Icinga2 — це потужна система моніторингу, і при використанні в моделі «майстер-клієнт» вона може замінити потребу в перевірках моніторингу на основі NRPE. Майстер-клієнт

Як встановити Apache Cassandra 3.11.x на CentOS 7

Як встановити Apache Cassandra 3.11.x на CentOS 7

Використання іншої системи? Apache Cassandra — це безкоштовна система керування базами даних NoSQL з відкритим вихідним кодом, яка розроблена для забезпечення масштабованості, високої

Як встановити Microweber на CentOS 7

Як встановити Microweber на CentOS 7

Використання іншої системи? Microweber — це CMS та інтернет-магазин із відкритим вихідним кодом. Вихідний код Microweber розміщено на GitHub. Цей посібник покаже вам

Як встановити Vanilla Forum на CentOS 7

Як встановити Vanilla Forum на CentOS 7

Використання іншої системи? Vanilla forum — це програма з відкритим вихідним кодом, написана на PHP. Це повністю настроюваний, простий у використанні та підтримує зовнішній вигляд

Як встановити Mattermost 4.1 на CentOS 7

Як встановити Mattermost 4.1 на CentOS 7

Використання іншої системи? Mattermost — це автономна альтернатива службі обміну повідомленнями Slack SAAS з відкритим кодом. Іншими словами, з Mattermost ви бл

Lets Encrypt на Plesk

Lets Encrypt на Plesk

Панель керування Plesk має дуже гарну інтеграцію для Lets Encrypt. Lets Encrypt є одним із єдиних постачальників SSL, які надають сертифікати повністю

Дозволяє шифрувати на cPanel

Дозволяє шифрувати на cPanel

Lets Encrypt — це центр сертифікації, який надає безкоштовні сертифікати SSL. cPanel створив чітку інтеграцію, щоб ви і ваш клієнт

Як встановити Concrete5 на CentOS 7

Як встановити Concrete5 на CentOS 7

Використання іншої системи? Concrete5 — це CMS з відкритим вихідним кодом, яка пропонує багато відмінних і корисних функцій, які допомагають редакторам легко створювати вміст.

Як встановити Review Board на CentOS 7

Як встановити Review Board на CentOS 7

Використання іншої системи? Review Board — це безкоштовний інструмент з відкритим кодом для перегляду вихідного коду, документації, зображень та багато іншого. Це веб-програмне забезпечення

Налаштуйте автентифікацію HTTP за допомогою Nginx на CentOS 7

Налаштуйте автентифікацію HTTP за допомогою Nginx на CentOS 7

У цьому посібнику ви дізнаєтеся, як налаштувати автентифікацію HTTP для веб-сервера Nginx, що працює на CentOS 7. Вимоги Щоб почати, вам знадобиться

Як встановити GoAccess на CentOS 7

Як встановити GoAccess на CentOS 7

Використання іншої системи? GoAccess — це аналізатор веб-журналів з відкритим вихідним кодом. Ви можете використовувати його для аналізу журналів у режимі реального часу в терміналі або

Як встановити YOURLS на CentOS 7

Як встановити YOURLS на CentOS 7

YOURLS (Your Own URL Shortener) — програма для скорочення URL-адрес і аналізу даних із відкритим вихідним кодом. У цій статті ми розглянемо процес встановлення

Як встановити та налаштувати ArangoDB на CentOS 7

Як встановити та налаштувати ArangoDB на CentOS 7

Використання іншої системи? Вступ ArangoDB — це відкрита база даних NoSQL з гнучкою моделлю даних для документів, графіків і ключів-значень. це є

Використання Etckeeper для контролю версій /etc

Використання Etckeeper для контролю версій /etc

Вступ Каталог /etc/ відіграє важливу роль у функціонуванні системи Linux. Причина цього в тому, що майже кожна конфігурація системи

Чому ви повинні використовувати SSHFS? Як підключити віддалену файлову систему з SSHFS на CentOS 6

Чому ви повинні використовувати SSHFS? Як підключити віддалену файлову систему з SSHFS на CentOS 6

Багато системних адміністраторів керують великою кількістю серверів. Якщо потрібно отримати доступ до файлів на різних серверах, увійти на кожен окремо бл

Налаштування сервера Half Life 2 на CentOS 6

Налаштування сервера Half Life 2 на CentOS 6

У цьому посібнику буде описано процес встановлення ігрового сервера Half Life 2 на систему CentOS 6. Крок 1: Встановлення необхідних умов Щоб налаштувати ou

Повстання машин: застосування ШІ в реальному світі

Повстання машин: застосування ШІ в реальному світі

Штучний інтелект не в майбутньому, він тут прямо в сьогоденні У цьому блозі Прочитайте, як програми штучного інтелекту вплинули на різні сектори.

DDOS-атаки: короткий огляд

DDOS-атаки: короткий огляд

Ви також стали жертвою DDOS-атак і спантеличені методами запобігання? Прочитайте цю статтю, щоб вирішити свої запитання.

Ви коли-небудь замислювалися, як хакери заробляють гроші?

Ви коли-небудь замислювалися, як хакери заробляють гроші?

Можливо, ви чули, що хакери заробляють багато грошей, але чи замислювалися ви коли-небудь, як вони заробляють такі гроші? давайте обговоримо.

Революційні винаходи від Google, які полегшать ваше життя.

Революційні винаходи від Google, які полегшать ваше життя.

Ви хочете побачити революційні винаходи Google і як ці винаходи змінили життя кожної людини сьогодні? Тоді читайте в блозі, щоб побачити винаходи Google.

Friday Essential: Що сталося з автомобілями, керованими штучним інтелектом?

Friday Essential: Що сталося з автомобілями, керованими штучним інтелектом?

Концепція самокерованих автомобілів, щоб вирушати в дороги за допомогою штучного інтелекту, є мрією, яку ми давно мріємо. Але, незважаючи на кілька обіцянок, їх ніде не видно. Прочитайте цей блог, щоб дізнатися більше…

Технологічна сингулярність: віддалене майбутнє людської цивілізації?

Технологічна сингулярність: віддалене майбутнє людської цивілізації?

Оскільки наука розвивається швидкими темпами, бере на себе багато наших зусиль, ризики піддати себе незрозумілій Сингулярності також зростає. Читайте, що може означати для нас сингулярність.

Еволюція зберігання даних – інфографіка

Еволюція зберігання даних – інфографіка

Методи зберігання даних можуть розвиватися з моменту народження Даних. Цей блог висвітлює еволюцію зберігання даних на основі інфографіки.

Функціональні можливості шарів еталонної архітектури великих даних

Функціональні можливості шарів еталонної архітектури великих даних

Прочитайте блог, щоб дізнатися про різні шари архітектури великих даних та їх функціональні можливості найпростішим способом.

6 дивовижних переваг використання пристроїв розумного дому в нашому житті

6 дивовижних переваг використання пристроїв розумного дому в нашому житті

У цьому цифровому світі пристрої розумного дому стали важливою частиною життя. Ось кілька дивовижних переваг пристроїв розумного дому щодо того, як вони роблять наше життя гідним життя та спрощують його.

Оновлення доповнення macOS Catalina 10.15.4 спричиняє більше проблем, ніж вирішує

Оновлення доповнення macOS Catalina 10.15.4 спричиняє більше проблем, ніж вирішує

Нещодавно Apple випустила додаткове оновлення macOS Catalina 10.15.4, щоб виправити проблеми, але схоже, що оновлення викликає більше проблем, що призводять до блокування комп’ютерів Mac. Прочитайте цю статтю, щоб дізнатися більше