A practical workaround

In a previous post, I shared how I use Eagle and also mentioned one obvious drawback: it isn’t very friendly when you want to browse your library on a phone or tablet. This time I’m using PicHome as a workaround so the library can be accessed from mobile devices.

The project is designed for scenarios where a collection is managed by one person or a small team, but needs to be exposed to more people for viewing and downloading. It can serve as a portal for an existing image library, or even as a lightweight image search interface. That makes it a good fit when design assets need to be shared across departments or with partners in different locations.

Deployment with Docker

The easiest way is to use the docker-compose.yml provided by the project. First, clone the repository. If your Synology NAS can’t use git properly, you may need to install Git LFS manually first.

After logging into the SSH terminal, download the LFS package:

wget https://github.com/git-lfs/git-lfs/releases/download/v3.5.1/git-lfs-linux-amd64-v3.5.1.tar.gz

Unpack it and run the installer:

tar -zxvf git-lfs-linux-amd64-v3.5.1.tar.gz
cd git-lfs-3.5.1
sudo ./install.sh

Then enable Git LFS:

git lfs install

If everything is fine, you should see:

$ git lfs install
Git LFS initialized.

Now go to the folder where you want to keep PicHome and clone the project:

git clone https://github.com/zyx0814/Pichome-docker.git

Create two persistent directories next:

cd ./Pichome-docker/compose
mkdir data html
chmod -R 755 data html

Then adjust docker-compose.yml. You can also use the version below:

version: "3.5"

services:
  db:
    image: mariadb:10.7
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    #ports:
    #  - ${port}:3306 #不暴露端口
    volumes:
      - "./data:/var/lib/mysql"
    environment:
      - "TZ=Asia/Shanghai"
      - "MYSQL_ROOT_PASSWORD=${password}" # 记得修改密码
      - "MYSQL_DATABASE_FILE=/run/secrets/mysql_db"
      - "MYSQL_USER_FILE=/run/secrets/mysql_user"
      - "MYSQL_PASSWORD_FILE=/run/secrets/mysql_password"
    restart: always
    secrets:
      - mysql_db
      - mysql_password
      - mysql_user

  app:
    image: oaooa/pichome
    ports:
      - ${port}:80
    links:
      - db
    volumes:
      - "./html:/var/www/html"
      - "/volume1/photo/eagle库:/photo" # 根据实际情况加入需要的库
    environment:
      - "MYSQL_SERVER=db"
      - "MYSQL_DATABASE_FILE=/run/secrets/mysql_db"
      - "MYSQL_USER_FILE=/run/secrets/mysql_user"
      - "MYSQL_PASSWORD_FILE=/run/secrets/mysql_password"
    restart: always
    secrets:
      - mysql_db
      - mysql_password
      - mysql_user

secrets:
  mysql_db:
    file: "./mysql_db.txt"
  mysql_password:
    file: "./mysql_password.txt"
  mysql_user:
    file: "./mysql_user.txt"

Make sure to change the password and port to match your own setup.

After that, run docker-compose up -d to start everything. The final directory structure should look something like this:

pichome-docker
├── .git
├── compose
│   ├── data
│   ├── html
│   ├── docker-compose.yml
│   ├── mysql_db.txt
│   ├── mysql_password.txt
│   └── mysql_user.txt
├── conf
├── Dockerfile
├── README.md
└── entrypoint.sh

Once Docker finishes starting up, open ip:port in a browser to initialize the database.

Installation

Installation

Installation 2

Installation 2

Installation 3

Installation 3

Installation 4

Installation 4

Fill in the setup fields like this:

  • Site name: default
  • Database server: db — if you used my config above, this is the name after link
  • Database name: default
  • Database user: root
  • Database password: the password you set earlier
  • Table prefix: default
  • System email: set it yourself

Clicking next will ask you to reset the database, then you just wait for initialization to finish. After that, the installation is complete.

Adding your Eagle library

Open ip:port again and you’ll see that only the navigation bar is there. The next step is to add the Eagle library.

Click the avatar in the top-right corner, then go to System ManagementLibrary Management.

Add library

Add library

Click New and select the directory you mounted during setup.

Mounted directory

Mounted directory

After confirming, the library will be added. Then open the three-dot menu next to it and choose Update. If you go back to the homepage at this point, it may still look blank. That’s normal.

Now click the avatar again and enter System ManagementChannel Management. You should see the library you just added; open the status switch at the end of the row. When you return to the home page, the Eagle images will appear, shown in a waterfall-style layout.

Channel management

Channel management

PC layout

PC layout

iPad landscape

iPad landscape

iPhone and iPad portrait

iPhone and iPad portrait

At this point the basic setup is done, and you can start using it. The workflow is similar to the Eagle usage I mentioned before:

  • Categories correspond to Eagle folders
  • Tags correspond to Eagle tags
  • Colors correspond to Eagle color labels

A useful backup option

This setup works well as a fallback, or as a way to browse your library when you’re away from home. It doesn’t match Eagle’s native experience in terms of interface or features, but it makes up for one of Eagle’s biggest weaknesses and is a practical alternative worth keeping around.