Инсталирайте TaskServer (taskd) на CentOS 7

TaskWarrior е инструмент за управление на времето с отворен код, който е подобрение на приложението Todo.txt и неговите клонинги. Поради факта, че средният човек използва множество устройства/платформи в ежедневния си график, от решаващо значение е да има възможност да има централизирано хранилище, където данните могат да бъдат достъпни и актуализирани от всяко устройство. Този урок ще се фокусира върху настройката както на сървъра, наречен TaskServer (taskd), така и на клиента, наречен TaskWarrior (задача), позволявайки на множество клиентски устройства да имат достъп и да обменят сигурен данни.

Той има следните характеристики:

  • Неограничени задачи
  • Приоритизиране на задачите
  • Филтриране на търсене
  • Маркиране
  • Автоматично синхронизиране
  • Автоматично архивиране
  • Пълен контрол и поверителност
  • Шифрована комуникация

Предпоставки

  • Инстанция на сървъра CentOS 7 x64.
  • А Sudo потребител.
  • Име на домейн, насочено към екземпляр на Vultr ( taskd.example.com )

Стъпка 1: Актуализирайте системата

Влезте като вашия sudo потребител, за да инсталирате EPEL Repository и актуализирайте системата, както следва:

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. Под " Email адрес: " въведете имейл адрес по ваш избор и натиснете клавиша Return/Enter .

  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 keystore. Заменете " jqpublic " с текста, който сте избрали в стъпка #17.

    sudo rpm --import RPM-GPG-KEY-jqpublic
    
  19. Уверете се, че двойката ключове е добавена към RPM keystore. Опцията --q gpg-pubkey отправя заявка към RPM GnuPG keystore. В % {име} -% {версия} - {% освобождаване} ->% {резюме} \ п показва резултата в четлив формат човек.

    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: Изградете TaskServer (taskd) RPM от източника

  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 ключ . Сега ще бъде изтеглен и извлечен. Изберете потребителско име и парола.

    bash
    
  3. Сега е време да инсталирате TaskWarrior (задача). Въведете следната команда в конзолата.

    sudo apt-get install task -y
    
  4. Въведете exit два пъти, за да излезете от bash терминала и командния ред на Windows.

  5. Щракнете върху бутона Старт меню. Въведете ubuntu . Щракнете с десния бутон върху Bash на Ubuntu под Windows . Изберете Pin to taskbar . Това осигурява удобство за бърз достъп до 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 Store.

  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 стек) на CentOS 6

Как да инсталирате Lighttpd (LLMP стек) на CentOS 6

Въведение Lighttpd е форк на Apache, чиято цел е да бъде много по-малко ресурсоемка. Той е лек, откъдето идва и името му, и е доста лесен за използване. Инсталирайте

Конфигуриране на статична мрежа и IPv6 на CentOS 7

Конфигуриране на статична мрежа и IPv6 на CentOS 7

VULTR наскоро направи промени от своя страна и вече всичко трябва да работи добре от кутията с активиран NetworkManager. Ако желаете да деактивирате

Промяна на Icinga2 за използване на модел главен/клиент на CentOS 6 или CentOS 7

Промяна на Icinga2 за използване на модел главен/клиент на 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. Това ръководство ще ви покаже

Как да инсталирате Mattermost 4.1 на CentOS 7

Как да инсталирате Mattermost 4.1 на CentOS 7

Използване на различна система? Mattermost е самостоятелно хоствана алтернатива с отворен код на Slack SAAS услугата за съобщения. С други думи, с Mattermost, вие ca

Създаване на мрежа от сървъри на Minecraft с BungeeCord на Debian 8, Debian 9 или CentOS 7

Създаване на мрежа от сървъри на Minecraft с BungeeCord на Debian 8, Debian 9 или CentOS 7

Какво ви трябва Vultr VPS с поне 1 GB RAM. SSH достъп (с root/административни привилегии). Стъпка 1: Инсталиране на BungeeCord На първо място

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 с отворен код, който предлага много отличителни и полезни функции за подпомагане на редакторите при лесното създаване на съдържание и

Как да инсталирате табло за преглед на CentOS 7

Как да инсталирате табло за преглед на CentOS 7

Използване на различна система? Review Board е безплатен инструмент с отворен код за преглед на изходен код, документация, изображения и много други. Това е уеб базиран софтуер

Настройте HTTP удостоверяване с Nginx на CentOS 7

Настройте HTTP удостоверяване с Nginx на CentOS 7

В това ръководство ще научите как да настроите HTTP удостоверяване за уеб сървър на Nginx, работещ на CentOS 7. Изисквания За да започнете, ще ви трябва

Как да инсталирате 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 System. Стъпка 1: Инсталиране на предпоставките За да настроите ou

Как да инсталирате Laravel GitScrum на CentOS 7

Как да инсталирате Laravel GitScrum на CentOS 7

Laravel GitScrum или GitScrum е инструмент за производителност с отворен код, предназначен да помогне на екипите за разработка да внедрят методологията на Scrum по подобен начин.

Възходът на машините: Реални приложения на AI

Възходът на машините: Реални приложения на AI

Изкуственият интелект не е в бъдещето, тук е точно в настоящето. В този блог Прочетете как приложенията за изкуствен интелект са повлияли на различни сектори.

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 машини. Прочетете тази статия, за да научите повече