2024年9月21日 星期六

How to create the Joplin server with the docker?

1. Get the docker sample configuration file. 

$wget https://raw.githubusercontent.com/laurent22/joplin/dev/.env-sample
$move .env-sample .env
$vim .env

2. The example configuration will like below: 

#=============================================================================
# PRODUCTION CONFIG EXAMPLE
# -----------------------------------------------------------------------------
# By default it will use SQLite, but that's mostly to test and evaluate the
# server. So you'll want to specify db connection settings to use Postgres.
#=============================================================================
#
# APP_BASE_URL=https://example.com/joplin
# APP_PORT=22300
# 
# DB_CLIENT=pg
# POSTGRES_PASSWORD=joplin
# POSTGRES_DATABASE=joplin
# POSTGRES_USER=joplin
# POSTGRES_PORT=5432
# POSTGRES_HOST=localhost
#============================================================================= 
# DEV CONFIG EXAMPLE
# -----------------------------------------------------------------------------
# Example of local config, for development. In dev mode, you would usually use
# SQLite so database settings are not needed.
#=============================================================================
#
# APP_BASE_URL=http://localhost:22300
# APP_PORT=22300

3. If normal usage, use PRODUCTION section. 

PS:If only for debug or demo, use DEV section. 

APP_BASE_URL=https://example.com/joplin 
APP_PORT=22300
DB_CLIENT=pg
POSTGRES_PASSWORD=joplin
POSTGRES_DATABASE=joplin
POSTGRES_USER=joplin
POSTGRES_PORT=5432
POSTGRES_HOST=localhost

PS. Please change the POSTGRES_PASSWORD with you want. 

4. But, even use the docker, this docker will connect to your localhost DB. So, you must manually create the DB on your localhost. 

$sudo -u postgres psql

When you entry into the PostgreSQL console, please type the below command: 

PS. The PASSWORD must equal the POSTGRES_PASSWORD. 

CREATE DATABASE joplin;
CREATE USER joplin WITH PASSWORD 'yourpassword';
ALTER ROLE joplin SET client_encoding TO 'utf8';
ALTER ROLE joplin SET default_transaction_isolation TO 'read committed';
ALTER ROLE joplin SET timezone TO 'UTC';
GRANT ALL PRIVILEGES ON DATABASE joplin TO joplin;
\q

5. Run the docker.

$docker run --net=host --add-host=host.docker.internal:127.0.0.1 --env-file .env -p 22300:22300 joplin/server:latest

6. You can visit the local host on browser. 

http://localhost:22300/ 

7. The default login setting: 

Default username: admin@localhost 

Default password: admin 

8. You can create the bash file to easily run the docker: 

#!/bin/bash
docker pull joplin/server:latest
docker stop joplin
docker rm joplin
docker run -d --restart unless-stopped --name joplin \
			  --net=host \
              --add-host=host.docker.internal:127.0.0.1 \
              --env-file .env \
              -p 22300:22300 \
              joplin/server:latest

9. Reference: 

(1) https://hub.docker.com/r/joplin/server 

(2) https://netivism.com.tw/blog/512 

(3) https://raw.githubusercontent.com/laurent22/joplin/dev/.env-sample

2023年8月1日 星期二

How to build the QT static version on the Windows platform?

1. Download the QT source code from the QT office website.

Download link: https://download.qt.io/archive/qt/5.15/5.15.2/single/qt-everywhere-src-5.15.2.tar.xz
NOTE: This example will use the version QT 5.15.2.

2. Unzip the source code to the local disk.

Example: "D:\qt-everywhere-src-5.15.2"

3. Install the depend tools and library.

The QT was depend some tools or library. By the QT 5.15.2, it was depend below list: 

Perl version 5.12 or later [http://www.activestate.com/activeperl/]

Python version 2.7 or later [http://www.activestate.com/activepython/]

Ruby version 1.9.3 or later [http://rubyinstaller.org/]

4. Open the VS2019 console.

NOTE: This example must need the VS2019 to build the QT source code. Please make sure your PC has installed the VS2019.

Launch the VS2016 console tool: "x64 Native Tools Command Prompt for VS 2019"

It will show some message like below:

 

 

 

5. Change the work folder to "D:\qt-everywhere-src-5.15.2".


$cd D:\qt-everywhere-src-5.15.2

6. Modify the source code: "qtbase\mkspecs\common\msvc-desktop.conf"

QMAKE_CFLAGS_RELEASE = $$QMAKE_CFLAGS_OPTIMIZE -MD

QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -Zi -MD

QMAKE_CFLAGS_DEBUG = -Zi -MDd

to

QMAKE_CFLAGS_RELEASE = $$QMAKE_CFLAGS_OPTIMIZE -MT

QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -Zi -MT

QMAKE_CFLAGS_DEBUG = -Zi -MTd

7. Use the configuration tool to initialize QT code base.


$configure.bat -static -prefix "D:\Qt_static" -confirm-license -opensource -debug-and-release -platform win32-msvc -nomake examples -nomake tests  -plugin-sql-sqlite -plugin-sql-odbc -qt-zlib -qt-libpng -qt-libjpeg -qt-freetype -qt-pcre -qt-harfbuzz -opengl desktop -mp

NOTE: This example will set the final install path is "D:\Qt_static".

8. Download the build tool: "jom".

Download link: http://download.qt.io/official_releases/jom/jom.zip

This tool supports the multiple-core to build the source code on Windows Platform.

We assume your JOM unzip path is "D:/jom_1_1_3/jom.exe".

9. Build the QT source code.

NOTE: Please remember to change the work folder to the QT source code folder, like the "step 5".

Run the JOM in the console.

$D:/jom_1_1_3/jom.exe

10. Install the QT SDK to the local.


$nmake install

In the "step 7", we set the install path is "D:\Qt_static". After this command, it will help to install QT to this folder.

Reference: https://blog.csdn.net/zhangpeterx/article/details/105099003

2023年2月3日 星期五

Windows 10 - System Built-in MD5 Tool

certutil -hashfile <filename> <hash-mode>

certutil -?

Verbs:
 -dump          -- Dump configuration information or files
 -asn           -- Parse ASN.1 file
 -decodehex     -- Decode hexadecimal-encoded file
 -decode        -- Decode Base64-encoded file
 -encode        -- Encode file to Base64
 -deny          -- Deny pending request
 -resubmit      -- Resubmit pending request
 -setattributes -- Set attributes for pending request
 -setextension  -- Set extension for pending request
 -revoke        -- Revoke Certificate
 -isvalid       -- Display current certificate disposition
 -getconfig     -- Get default configuration string
 -ping          -- Ping Active Directory Certificate Services Request interface
 -pingadmin     -- Ping Active Directory Certificate Services Admin interface
 -CAInfo        -- Display CA Information
 -ca.cert       -- Retrieve the CA's certificate
 -ca.chain      -- Retrieve the CA's certificate chain
 -GetCRL        -- Get CRL
 -CRL           -- Publish new CRLs [or delta CRLs only]
 -shutdown      -- Shutdown Active Directory Certificate Services
 -installCert   -- Install Certification Authority certificate
 -renewCert     -- Renew Certification Authority certificate
 -schema        -- Dump Certificate Schema
 -view          -- Dump Certificate View
 -db            -- Dump Raw Database
 -deleterow     -- Delete server database row
 -backup        -- Backup Active Directory Certificate Services
 -backupDB      -- Backup Active Directory Certificate Services database
 -backupKey     -- Backup Active Directory Certificate Services certificate
                   and private key
 -restore       -- Restore Active Directory Certificate Services
 -restoreDB     -- Restore Active Directory Certificate Services database
 -restoreKey    -- Restore Active Directory Certificate Services certificate
                   and private key
 -importPFX     -- Import certificate and private key
 -dynamicfilelist -- Display dynamic file List
 -databaselocations -- Display database locations
 -hashfile      -- Generate and display cryptographic hash over a file
 -store         -- Dump certificate store
 -addstore      -- Add certificate to store
 -delstore      -- Delete certificate from store
 -verifystore   -- Verify certificate in store
 -repairstore   -- Repair key association or update certificate properties or
                   key security descriptor
 -viewstore     -- Dump certificate store
 -viewdelstore  -- Delete certificate from store
 -dsPublish     -- Publish certificate or CRL to Active Directory
 -ADTemplate    -- Display AD templates
 -Template      -- Display Enrollment Policy templates
 -TemplateCAs   -- Display CAs for template
 -CATemplates   -- Display templates for CA
 -enrollmentServerURL -- Display, add or delete enrollment server URLs associated
                   with a CA
 -ADCA          -- Display AD CAs
 -CA            -- Display Enrollment Policy CAs
 -Policy        -- Display Enrollment Policy
 -PolicyCache   -- Display or delete Enrollment Policy Cache entries
 -CredStore     -- Display, add or delete Credential Store entries
 -InstallDefaultTemplates -- Install default certificate templates
 -URLCache      -- Display or delete URL cache entries
 -pulse         -- Pulse autoenrollment events
 -MachineInfo   -- Display Active Directory machine object information
 -DCInfo        -- Display domain controller information
 -EntInfo       -- Display enterprise information
 -TCAInfo       -- Display CA information
 -SCInfo        -- Display smart card information
 -SCRoots       -- Manage smart card root certificates
 -verifykeys    -- Verify public/private key set
 -verify        -- Verify certificate, CRL or chain
 -sign          -- Re-sign CRL or certificate
 -vroot         -- Create/delete web virtual roots and file shares
 -vocsproot     -- Create/delete web virtual roots for OCSP web proxy
 -addEnrollmentServer -- Add an Enrollment Server application
 -deleteEnrollmentServer -- Delete an Enrollment Server application
 -oid           -- Display ObjectId or set display name
 -error         -- Display error code message text
 -getreg        -- Display registry value
 -setreg        -- Set registry value
 -delreg        -- Delete registry value
 -ImportKMS     -- Import user keys and certificates into server database for key
                   archival
 -ImportCert    -- Import a certificate file into the database
 -GetKey        -- Retrieve archived private key recovery blob
 -RecoverKey    -- Recover archived private key
 -MergePFX      -- Merge PFX files
 -ConvertEPF    -- Convert PFX files to EPF file
 -?             -- Display this usage message

CertUtil -?          -- Display a verb list (command list)
CertUtil -dump -?    -- Display help text for the "dump" verb
CertUtil -v -?       -- Display all help text for all verbs

CertUtil: -? command completed successfully.

2017年6月20日 星期二

Linux - How to find the GPIO usage status ?

$cat /sys/kernel/debug/gpio

GPIOs 576-607, platform/qcom,smp2pgpio-ssr-smp2p-4-out.19, master-kernel:

GPIOs 608-639, platform/qcom,smp2pgpio-ssr-smp2p-4-in.18, slave-kernel:

GPIOs 640-671, platform/qcom,smp2pgpio-ssr-smp2p-1-out.13, master-kernel:

GPIOs 672-703, platform/qcom,smp2pgpio-ssr-smp2p-1-in.12, slave-kernel:

GPIOs 704-735, platform/qcom,smp2pgpio-smp2p-4-out.16, smp2p:

GPIOs 736-767, platform/qcom,smp2pgpio-smp2p-4-in.14, smp2p:

GPIOs 768-799, platform/qcom,smp2pgpio-smp2p-1-out.10, smp2p:

GPIOs 800-831, platform/qcom,smp2pgpio-smp2p-1-in.8, smp2p:

GPIOs 832-863, platform/qcom,smp2pgpio-smp2p-7-out.6, smp2p:

GPIOs 864-895, platform/qcom,smp2pgpio-smp2p-7-in.4, smp2p:

GPIOs 896-899, spmi/qpnp-pin-ffffffc03161cc00, pm8916-gpio:
 gpio-896 (qcom,hub-reset-gpio ) out hi
 gpio-897 (qcom,sw-sel-gpio    ) in  lo

GPIOs 900-901, spmi/qpnp-pin-ffffffc03161c800, pm8916-mpp:

GPIOs 902-1023, platform/1000000.pinctrl, msm_tlmm_gpio:
 gpio-922 (adv7533_hpd_irq_gpio) in  lo
 gpio-923 (led1                ) out lo
 gpio-927 (disp_rst_n          ) in  lo
 gpio-933 (adv7533_irq_gpio    ) in  lo
 gpio-934 (adv7533_switch_gpio ) out lo
 gpio-940 (7864900.sdhci cd    ) in  hi
 gpio-1009 (volume_up           ) in  hi
 gpio-1012 (USB_ID_GPIO         ) in  hi
 gpio-1022 (led2                ) out lo

reference : https://stackoverflow.com/questions/16033748/how-do-can-i-find-out-which-linux-driver-is-hogging-my-gpio

2016年8月29日 星期一

Gitlab - 如何解決 "No authentication methods configured on login page" ? (gitlab version : 8.11.2)

1. 安裝 postgresql-client-common & postgresql-client

$sudo apt-get install postgresql-client postgresql-client-common

2. 連線資料庫

$sudo gitlab-psql gitlabhq_production

PS. 可以用 sudo gitlab-psql -l 查看資料庫列表

3. 進入 client 界面後輸入:

UPDATE application_settings set signin_enabled=true;
\q
4. 重新啟動 gitlab

$sudo gitlab-ctl restart

2016年8月17日 星期三

Spotify - 解決 ubuntu 16.04 下無法播放本機檔案問題

1. Download Spotify Library

$wget https://github.com/ramedeiros/spotify_libraries/archive/master.zip

or

$git clone https://github.com/ramedeiros/spotify_libraries.git

2. Copy files to lib folder.

$cd spotify_libraries
$sudo cp lib* /usr/lib/x86_64-linux-gnu/

3. link library

$sudo ldconfig
$sudo ln -frs /usr/lib/x86_64-linux-gnu/libavutil.so.52.6.100 /usr/lib/x86_64-linux-gnu/libavutil.so.52
$sudo ln -frs /usr/lib/x86_64-linux-gnu/libavformat.so.54.36.100 /usr/lib/x86_64-linux-gnu/libavformat.so.54
$sudo ln -frs /usr/lib/x86_64-linux-gnu/libavcodec.so.54.71.100 /usr/lib/x86_64-linux-gnu/libavcodec.so.54

Reference :
1. https://community.spotify.com/t5/Desktop-Linux-Windows-Web-Player/Linux-Local-files-do-not-play-on-Ubuntu-16-04-SOLVED/td-p/1343831
2. https://github.com/ramedeiros/spotify_libraries

2016年5月26日 星期四

MPLABX - 如何解決 MPLABX 在 Linux 版本下 editor 字體模糊問題?

1. 找到 MPLABX 安裝路徑,以 v3.15 在 ubuntu 16.04 為例:

$cd /opt/microchip/mplabx/v3.15/

2. 找到 ide 安裝路徑並且編輯設定檔

$sudo vim mplab_ide/etc/mplab_ide.conf

3. 修改設定值

default_options="-J-Dcrownking.stream.verbosity=very-quiet -J-Xss2m -J-Xms256m -J-XX:PermSize=128m -J-XX:MaxPermSize=384m -J-Dapple.awt.graphics.UseQuartz=true -J-XX:+CMSClassUnloadingEnabled -J-Dapt.limit.expanded.params=1000 -J-Dplugin.manager.check.interval=EVERY_DAY"

修改為...

default_options="-J-Dcrownking.stream.verbosity=very-quiet -J-Xss2m -J-Xms256m -J-XX:PermSize=128m -J-XX:MaxPermSize=384m -J-Dapple.awt.graphics.UseQuartz=true -J-XX:+CMSClassUnloadingEnabled -J-Dapt.limit.expanded.params=1000 -J-Dplugin.manager.check.interval=EVERY_DAY -J-Dawt.useSystemAAFontSettings=on"

4. 重開 MPLABX