woodpecker/docs/docs/30-administration/20-vcs/60-bitbucket_server.md
Anbraten 9267a46d5c
[Docs] Migrate docs framework to Docusaurus (#282)
- Replace mkdocs with docosaurus (improved menu structure, ...)
- Structure docs into `Usage` and `Server Setup / Administration`
- Update favicon
- Create new pipeline-syntax page with all options and links to more detailed docs if available
- Add ci to publish to `woodpecker-ci.github.io`
- Deploy docs preview to surge for review
- Update start-page

Co-authored-by: 6543 <6543@obermui.de>
2021-09-11 17:10:32 +02:00

4.5 KiB

Bitbucket Server

Woodpecker comes with experimental support for Bitbucket Server, formerly known as Atlassian Stash. To enable Bitbucket Server you should configure the Woodpecker container using the following environment variables:

version: '3'

services:
  woodpecker-server:
    image: woodpeckerci/woodpecker-server:latest
    ports:
      - 80:8000
      - 9000
    volumes:
      - /var/lib/drone:/var/lib/drone/
    restart: always
    environment:
      - WOODPECKER_OPEN=true
      - WOODPECKER_HOST=${WOODPECKER_HOST}
+     - WOODPECKER_STASH=true
+     - WOODPECKER_STASH_GIT_USERNAME=foo
+     - WOODPECKER_STASH_GIT_PASSWORD=bar
+     - WOODPECKER_STASH_CONSUMER_KEY=95c0282573633eb25e82
+     - WOODPECKER_STASH_CONSUMER_RSA=/etc/bitbucket/key.pem
+     - WOODPECKER_STASH_URL=http://stash.mycompany.com
      - WOODPECKER_SECRET=${WOODPECKER_SECRET}
    volumes:
+     - /path/to/key.pem:/path/to/key.pem

  woodpecker-agent:
    image: woodpeckerci/woodpecker-agent:latest
    restart: always
    depends_on:
      - woodpecker-server
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    environment:
      - WOODPECKER_SERVER=woodpecker-server:9000
      - WOODPECKER_SECRET=${WOODPECKER_SECRET}

Private Key File

The OAuth process in Bitbucket server requires a private and a public RSA certificate. This is how you create the private RSA certificate.

openssl genrsa -out /etc/bitbucket/key.pem 1024

This stores the private RSA certificate in key.pem. The next command generates the public RSA certificate and stores it in key.pub.

openssl rsa -in /etc/bitbucket/key.pem -pubout >> /etc/bitbucket/key.pub

Please note that the private key file can be mounted into your Woodpecker conatiner at runtime or as an environment variable

Private key file mounted into your Woodpecker container at runtime as a volume.

version: '2'

services:
  woodpecker-server:
    image: woodpeckerci/woodpecker-server:latest
    environment:
    - WOODPECKER_OPEN=true
    - WOODPECKER_HOST=${WOODPECKER_HOST}
      - WOODPECKER_STASH=true
      - WOODPECKER_STASH_GIT_USERNAME=foo
      - WOODPECKER_STASH_GIT_PASSWORD=bar
      - WOODPECKER_STASH_CONSUMER_KEY=95c0282573633eb25e82
+     - WOODPECKER_STASH_CONSUMER_RSA=/etc/bitbucket/key.pem
      - WOODPECKER_STASH_URL=http://stash.mycompany.com
      - WOODPECKER_SECRET=${WOODPECKER_SECRET}
+  volumes:
+     - /etc/bitbucket/key.pem:/etc/bitbucket/key.pem

Private key as environment variable

version: '3'

services:
  woodpecker-server:
    image: woodpeckerci/woodpecker-server:latest
    environment:
    - WOODPECKER_OPEN=true
    - WOODPECKER_HOST=${WOODPECKER_HOST}
      - WOODPECKER_STASH=true
      - WOODPECKER_STASH_GIT_USERNAME=foo
      - WOODPECKER_STASH_GIT_PASSWORD=bar
      - WOODPECKER_STASH_CONSUMER_KEY=95c0282573633eb25e82
+     - WOODPECKER_STASH_CONSUMER_RSA_STRING=contentOfPemKeyAsString
      - WOODPECKER_STASH_URL=http://stash.mycompany.com
      - WOODPECKER_SECRET=${WOODPECKER_SECRET}

Service Account

Woodpecker uses git+https to clone repositories, however, Bitbucket Server does not currently support cloning repositories with oauth token. To work around this limitation, you must create a service account and provide the username and password to Woodpecker. This service account will be used to authenticate and clone private repositories.

Registration

You must register your application with Bitbucket Server in order to generate a consumer key. Navigate to your account settings and choose Applications from the menu, and click Register new application. Now copy & paste the text value from /etc/bitbucket/key.pub into the Public Key in the incoming link part of the application registration.

Please use http://woodpecker.mycompany.com/authorize as the Authorization callback URL.

Configuration

This is a full list of configuration options. Please note that many of these options use default configuration values that should work for the majority of installations.

WOODPECKER_STASH=true
Set to true to enable the Bitbucket Server (Stash) driver.
WOODPECKER_STASH_URL
Bitbucket Server address.
WOODPECKER_STASH_CONSUMER_KEY
Bitbucket Server oauth1 consumer key
WOODPECKER_STASH_CONSUMER_RSA
Bitbucket Server oauth1 private key file
WOODPECKER_STASH_CONSUMER_RSA_STRING
Bibucket Server oauth1 private key as a string
WOODPECKER_STASH_GIT_USERNAME
Machine account username used to clone repositories.
WOODPECKER_STASH_GIT_PASSWORD
Machine account password used to clone repositories.