Overview
Host HTML pages right on your server instance – supports Javascript, and serves unique pages on a repository basis.
The Pages plugin provides a simple way to publish web pages in Bitbucket Server. It allows repository administrators to enable serving of static web pages for any existing branch or tag. Once enabled, users will be able to view HTML files of this branch or tag directly in Bitbucket. Its also possible to link to other HTML files or resources like CSS, JavaScript or images by using relative links.
Feature Highlights
Simple web hosting Host simple websites directly in Bitbucket Server
Commit and Publish Just edit, push, and your changes are live
Version control just happens Automatic version control by Git
Static web pages for every branch Enable serving of static web pages per branch or tag
Access control just happens Access control based on repository permissions
Relative links Supports relative links and files stored in Git LFS
Configurable navigation button Select a branch you want to be accessible in left navigation bar
How it works
Repository administrators can enable serving of static web pages for any existing branch or tag in the repository settings screen. Once enabled, the base URL for pages in this branch or tag is being displayed next to the branch or tag name.
Web pages are available under the following URL: /pages/<PROJECT>/<REPOSITORY>/<BRANCH-OR-TAG>
If there is no index.html file available in the root level of a branch or tag, you need to link to the page directly by appending the file path to the URL. Example: /pages/<PROJECT>/<REPOSITORY>/<BRANCH-OR-TAG>/browse/<PATH>/<TO>/<FILE>.html
Once pages have been enabled for a branch or a tag, users will be able to view HTML files of this branch or tag directly in Bitbucket. When clicking on open in the file browser of this branch or tag, the page will be rendered full screen, without the Bitbucket layout. It's also possible to link to other HTML files or resources like CSS, JavaScript or images by using relative links. You can even link to files stored in Git LFS.
Of course by hosting your web pages directly in Bitbucket Server, you also get automatic version control by Git.
Security
Access to web pages is based on repository permissions. Users need at least read access to the repository to view web pages in Bitbucket. For security reasons, pages are not available for branches or tags in personal repositories by default. But in the plugin settings, you can configure which groups are allowed to enable pages in personal repositories.
XSS Attacks
For users who want to still use the plugin and are worried about potentially malicious content in git repositories, we've added an option to disable JavaScript on rendered pages. You can disable JavaScript either on a global level or a repository level. Another way to host malicious safely is to configure an external domain.
Configuration
You can change Web Pages plugin options in a separate configuration tab of Repository Settings page
Security level
You can select one of the following web page content protection levels:
Allow all insecure content: support both Javascript and CSS on the page, use only with private or fully trusted repositories!
Allow CSS only: support CSS styling of pages, but wipe out Javascript code from pages
Disable all insecure content: render text content only, wipe out CSS and Javascript code
Sub-folder to serve
Path to be used as root of web server. Files outside selected folder will not be accessible
Enable branches
Automatically enable pages for new branches in this repository: If this option is enabled, web page link will be enabled for all newly created branches.
Also, you can manually enable or disable particular branches or tags.
Web Page navigation link
If branch link is enabled, you can select it to be used with Web Page button in left navigation bar:
only one branch can be selected, tags not used
default branch is selected by default
if you you turn off branch link, Web Page button will be hidden
Pages for Bitbucket Server vs. websites on Bitbucket Cloud
The main difference between Pages for Bitbucket Server and the websites feature of Bitbucket Cloud is that we support websites on a repository level, not just on the account level. This brings the following advantages:
Websites on Bitbucket Cloud | Pages for Bitbucket Server |
---|---|
On Bitbucket Cloud you can only publish one repository per user. | With the Pages add-on you can publish as many repositories as you want. |
On Bitbucket Cloud you can only publish a single branch of the repository. | With the Pages add-on you can serve static web pages from any branch or tag you like. |
On Bitbucket Cloud the website is public on the internet. Anyone with the URL can access it. | The Pages add-on uses the permissions of the underlying repository, which allows you to control specifically who can access the pages and who not. |
Bitbucket Cloud can only serve a website when the site's URL is <username>.bitbucket.org. | The Pages add-on allows you to use your own custom domain. |