Skip to content

Installation

For most users, install a prebuilt binary from the latest GitHub release. You do not need Go, Node.js, or a local checkout.

The app uses an embedded default configuration when config.yaml is not present. It creates local files such as portfolio-manager.db and portfolio-manager.log in the folder where you run it, so put the binary in a dedicated folder.

Run the installer from Terminal:

Terminal window
curl -fsSL https://raw.githubusercontent.com/rodionlim/portfolio-manager-go/main/scripts/install.sh | bash

The installer downloads the right binary, asks for optional analytics settings, and starts Portfolio Manager immediately. You can press Enter through the optional prompts to keep the defaults.

After startup, open:

  • Web UI and backend: http://localhost:8080
  • MCP endpoint: http://localhost:8081/mcp

The installer may ask for:

  • GEMINI_API_KEY: optional. Enables Gemini-backed analytics workflows.
  • ANALYTICS_SCHEDULE: optional. Overrides the analytics collection cron schedule. Press Enter to use the app default, 0 17 * * 1.

When you provide either value, the installer writes ~/portfolio-manager/portfolio-manager.env and uses it when starting the app.

If you want Portfolio Manager to keep running after you close Terminal, install it as a macOS LaunchAgent or Linux systemd user service:

Terminal window
curl -fsSL https://raw.githubusercontent.com/rodionlim/portfolio-manager-go/main/scripts/install.sh | bash -s -- --daemon

This background setup currently targets macOS and Linux. Windows service setup can be added later.

To install without starting immediately:

Terminal window
curl -fsSL https://raw.githubusercontent.com/rodionlim/portfolio-manager-go/main/scripts/install.sh | bash -s -- --no-run

Open PowerShell and run:

Terminal window
irm https://raw.githubusercontent.com/rodionlim/portfolio-manager-go/main/scripts/install.ps1 | iex

Then start it from PowerShell:

Terminal window
cd "$env:USERPROFILE\portfolio-manager"
.\portfolio-manager.exe

The backend starts on http://localhost:8080. The MCP server starts on http://localhost:8081/mcp when enabled by the embedded config.

If you need to customize ports, database location, schedules, or API keys, create a config.yaml beside the binary and start with ./portfolio-manager -config config.yaml.

  • Go 1.26.2 or higher.
  • Node.js and npm when working on the web UI or this Astro documentation site.

Clone the repository and build the application:

Terminal window
git clone https://github.com/rodionlim/portfolio-manager-go.git
cd portfolio-manager-go
make

Start the application backend with a custom config file:

Terminal window
./portfolio-manager -config custom-config.yaml

GEMINI_API_KEY overrides the Gemini API key configured in config.yaml.

ANALYTICS_SCHEDULE overrides the analytics cron schedule configured in config.yaml.

For Proxmox LXC installation, run:

Terminal window
bash -c "$(wget -qLO - https://github.com/rodionlim/portfolio-manager-go/raw/main/lxc/portfolio-manager.sh)"

To upgrade Portfolio Manager later, open a shell inside the LXC container and run:

Terminal window
update

For environment variables in Proxmox, edit the generated systemd unit and point it at an environment file such as /etc/sysconfig/PortfolioManager.