Skip to content

Commit

Permalink
BREAKING CHANGE: Change default serve port to 3000 and add ability to…
Browse files Browse the repository at this point in the history
… override (#265)

* Change default serve port to 3000 and add ability to override

* Fix documentation comment

* Only change the webhost url if not running in a container

* Refactor and simplify

* Always use default port
  • Loading branch information
reakaleek authored Jan 20, 2025
1 parent 4a134ec commit bfa8b3b
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 13 deletions.
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ Options:

Commands:
generate Converts a source markdown folder or file to an output folder
serve Continuously serve a documentation folder at http://localhost:5000.
serve Continuously serve a documentation folder at http://localhost:3000.
File systems changes will be reflected without having to restart the server.
```

Expand Down Expand Up @@ -63,10 +63,10 @@ Through the `serve` command you can continuously and partially compile your docu

```bash
docker run -v "./.git:/app/.git" -v "./docs:/app/docs" -v "./.artifacts:/app/.artifacts" \
-p 8080:8080 ghcr.io/elastic/docs-builder:edge serve
-p 3000:3000 ghcr.io/elastic/docs-builder:edge serve
```

Each page is compiled on demand as you browse http://localhost:8080 and is never cached so changes to files and
Each page is compiled on demand as you browse http://localhost:3000 and is never cached so changes to files and
navigation will always be reflected upon refresh.

Note the docker image is `linux-x86` and will be somewhat slower to invoke on OSX due to virtualization.
Expand Down
10 changes: 5 additions & 5 deletions docs/source/contribute/locally.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ Follow these steps to contribute to Elastic docs.
```

3. **Run the Binary:**
Use the `serve` command to start serving the documentation at http://localhost:5000. The path to the docset.yml file that you want to build can be specified with `-p`:
Use the `serve` command to start serving the documentation at http://localhost:3000. The path to the docset.yml file that you want to build can be specified with `-p`:
```sh
./docs-builder serve -p ./path/to/docs
```
Expand All @@ -51,7 +51,7 @@ Follow these steps to contribute to Elastic docs.
```

3. **Run the Binary:**
Use the `serve` command to start serving the documentation at http://localhost:5000. The path to the docset.yml file that you want to build can be specified with `-p`:
Use the `serve` command to start serving the documentation at http://localhost:3000. The path to the docset.yml file that you want to build can be specified with `-p`:
```sh
.\docs-builder serve -p ./path/to/docs
```
Expand All @@ -75,7 +75,7 @@ Follow these steps to contribute to Elastic docs.
```

3. **Run the Binary:**
Use the `serve` command to start serving the documentation at http://localhost:5000. The path to the docset.yml file that you want to build can be specified with `-p`:
Use the `serve` command to start serving the documentation at http://localhost:3000. The path to the docset.yml file that you want to build can be specified with `-p`:
```sh
./docs-builder serve -p ./path/to/docs
```
Expand All @@ -99,7 +99,7 @@ git clone https://github.com/elastic/docs-content.git
```

2. **Run the Binary:**
Use the `serve` command to start serving the documentation at http://localhost:5000. The path to the `docset.yml` file that you want to build can be specified with `-p`:
Use the `serve` command to start serving the documentation at http://localhost:3000. The path to the `docset.yml` file that you want to build can be specified with `-p`:
```sh
# macOS/Linux
./docs-builder serve -p ./migration-test
Expand All @@ -108,7 +108,7 @@ git clone https://github.com/elastic/docs-content.git
.\docs-builder serve -p .\migration-test
```

Now you should be able to view the documentation locally by navigating to http://localhost:5000.
Now you should be able to view the documentation locally by navigating to http://localhost:3000.

## Step 4: Open a PR [#step-four]

Expand Down
8 changes: 4 additions & 4 deletions src/docs-builder/Cli/Commands.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,20 +16,20 @@ namespace Documentation.Builder.Cli;
internal class Commands(ILoggerFactory logger, ICoreService githubActionsService)
{
/// <summary>
/// Continuously serve a documentation folder at http://localhost:5000.
/// Continuously serve a documentation folder at http://localhost:3000.
/// File systems changes will be reflected without having to restart the server.
/// </summary>
/// <param name="path">-p, Path to serve the documentation.
/// Defaults to the`{pwd}/docs` folder
/// </param>
/// <param name="port">Port to serve the documentation.</param>
/// <param name="ctx"></param>
[Command("serve")]
public async Task Serve(string? path = null, Cancel ctx = default)
public async Task Serve(string? path = null, int port = 3000, Cancel ctx = default)
{
var host = new DocumentationWebHost(path, logger, new FileSystem());
var host = new DocumentationWebHost(path, port, logger, new FileSystem());
await host.RunAsync(ctx);
await host.StopAsync(ctx);

}

/// <summary>
Expand Down
5 changes: 4 additions & 1 deletion src/docs-builder/Http/DocumentationWebHost.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
using Elastic.Markdown.Diagnostics;
using Elastic.Markdown.IO;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.FileProviders;
Expand All @@ -28,7 +29,7 @@ public class DocumentationWebHost

private readonly BuildContext _context;

public DocumentationWebHost(string? path, ILoggerFactory logger, IFileSystem fileSystem)
public DocumentationWebHost(string? path, int port, ILoggerFactory logger, IFileSystem fileSystem)
{
var builder = WebApplication.CreateSlimBuilder();

Expand All @@ -54,6 +55,8 @@ public DocumentationWebHost(string? path, ILoggerFactory logger, IFileSystem fil

//builder.Services.AddSingleton(logger);

builder.WebHost.UseUrls($"http://localhost:{port}");

_webApplication = builder.Build();
SetUpRoutes();
}
Expand Down

0 comments on commit bfa8b3b

Please sign in to comment.