Skip to main content

Windows

danger

This version is not production-ready and may result in data loss. Use at your own risk.

No Backup - No Mercy!

warning

We strongly recommend using the Docker-based installation for PLANKA.

The manual installation requires additional security configurations and a deep understanding of your environment. For example, to prevent SSRF and accidental access to internal services, you would need to properly configure an outgoing HTTP proxy.

The Docker version comes with a pre-installed outgoing proxy, which can be easily configured using Docker-only environment variables (OUTGOING_BLOCKED_IPS, OUTGOING_BLOCKED_HOSTS, OUTGOING_ALLOWED_IPS, OUTGOING_ALLOWED_HOSTS) to safely restrict outbound traffic.

System Requirements

Install PLANKA (Nightly)

Create the installation directory:

mkdir C:\planka
cd C:\planka

Clone the repo:

git clone https://github.com/plankanban/planka.git .

Install dependencies and build the client:

npm install

cd client
npm run build

Instead of copying files, use symbolic links for easier updates:

New-Item -ItemType SymbolicLink -Path "C:\planka\server\public\favicon.ico" -Target "C:\planka\client\dist\favicon.ico"
New-Item -ItemType SymbolicLink -Path "C:\planka\server\public\logo192.png" -Target "C:\planka\client\dist\logo192.png"
New-Item -ItemType SymbolicLink -Path "C:\planka\server\public\logo512.png" -Target "C:\planka\client\dist\logo512.png"
New-Item -ItemType SymbolicLink -Path "C:\planka\server\public\manifest.json" -Target "C:\planka\client\dist\manifest.json"
New-Item -ItemType SymbolicLink -Path "C:\planka\server\public\robots.txt" -Target "C:\planka\client\dist\robots.txt"
New-Item -ItemType SymbolicLink -Path "C:\planka\server\public\assets" -Target "C:\planka\client\dist\assets"
New-Item -ItemType SymbolicLink -Path "C:\planka\server\views\index.html" -Target "C:\planka\client\dist\index.html"

Configure Environment Variables

Go to the server directory and copy the sample .env file:

cd C:\planka\server
cp .env.sample .env

Generate a secret key:

-join ((33..126) | Get-Random -Count 32 | % {[char]$_})

Note the output - you'll need it for the .env file.

Edit the .env file:

notepad.exe .env

Example .env configuration:

## Required

BASE_URL=http://YOUR_DOMAIN_NAME:YOUR_PORT
DATABASE_URL=postgresql://planka:YOUR_DATABASE_PASSWORD@localhost/planka
SECRET_KEY=YOUR_GENERATED_KEY

## Optional

...

Security note: For manual installations, you need to configure your own OUTGOING_PROXY or implement firewall rules to restrict outbound traffic and prevent access to internal services.

Initialize the Database and Create an Admin User

Initialize the database:

npm run db:init

Create an admin user:

npm run db:create-admin-user

Sample output:

Email: YOUR_ADMIN_EMAIL
Password: YOUR_ADMIN_PASSWORD
Name: ...
Username (optional): ...

Start PLANKA

From the server directory, start PLANKA:

npm start --prod

Access PLANKA

Once the services are running, browse to http://YOUR_DOMAIN_NAME:YOUR_PORT and log in as YOUR_ADMIN_EMAIL with the password YOUR_ADMIN_PASSWORD.

Troubleshooting

If you encounter issues during the build process on Windows, try:

git config --global core.autocrlf false

Then restart the installation process from the beginning.