mirror of
https://github.com/softinio/softinio.com.git
synced 2025-10-19 03:36:42 -07:00
Compare commits
No commits in common. "57ddb1894918341bc8feb1a6ddb7f369d5f1e65d" and "e34f04baa6173762f49bafbf254ff8b2bac8dad3" have entirely different histories.
57ddb18949
...
e34f04baa6
5 changed files with 37 additions and 152 deletions
67
.github/workflows/deploy.yml
vendored
67
.github/workflows/deploy.yml
vendored
|
@ -1,67 +0,0 @@
|
||||||
name: Build and Deploy
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches: [ main ]
|
|
||||||
pull_request:
|
|
||||||
branches: [ main ]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build-and-deploy:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout repository
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Install Nix
|
|
||||||
uses: cachix/install-nix-action@v31
|
|
||||||
with:
|
|
||||||
nix_path: nixpkgs=channel:nixos-unstable
|
|
||||||
|
|
||||||
- name: Setup Nix store cache
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: /nix/store
|
|
||||||
key: ${{ runner.os }}-nix-store-${{ hashFiles('**/flake.lock') }}
|
|
||||||
restore-keys: |
|
|
||||||
${{ runner.os }}-nix-store-
|
|
||||||
|
|
||||||
- name: Cache flake inputs
|
|
||||||
uses: actions/cache@v4
|
|
||||||
with:
|
|
||||||
path: ~/.cache/nix
|
|
||||||
key: ${{ runner.os }}-nix-flake-${{ hashFiles('**/flake.lock') }}
|
|
||||||
restore-keys: |
|
|
||||||
${{ runner.os }}-nix-flake-
|
|
||||||
|
|
||||||
- name: Build site (pull request)
|
|
||||||
if: github.event_name == 'pull_request'
|
|
||||||
run: |
|
|
||||||
# Update base URL for PR preview
|
|
||||||
sed -i "s|base_url = \"https://www.softinio.com\"|base_url = \"https://${{ github.head_ref }}.softinio.pages.dev\"|" ./config.toml
|
|
||||||
nix build
|
|
||||||
nix flake show
|
|
||||||
ls result
|
|
||||||
echo "Preview URL: https://${{ github.head_ref }}.softinio.pages.dev"
|
|
||||||
|
|
||||||
- name: Deploy to Cloudflare Pages (pull request)
|
|
||||||
if: github.event_name == 'pull_request'
|
|
||||||
run: |
|
|
||||||
nix develop --command wrangler pages deploy result --branch=${{ github.head_ref }} --project-name=softinio --commit-dirty=true
|
|
||||||
env:
|
|
||||||
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
|
|
||||||
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
|
|
||||||
|
|
||||||
- name: Build site (main branch)
|
|
||||||
if: github.ref == 'refs/heads/main' && github.event_name == 'push'
|
|
||||||
run: |
|
|
||||||
nix build
|
|
||||||
|
|
||||||
- name: Deploy to Cloudflare Pages (main branch)
|
|
||||||
if: github.ref == 'refs/heads/main' && github.event_name == 'push'
|
|
||||||
run: |
|
|
||||||
nix develop --command wrangler pages deploy result --project-name=softinio --commit-dirty=true
|
|
||||||
env:
|
|
||||||
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
|
|
||||||
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
|
|
35
.woodpecker.yml
Normal file
35
.woodpecker.yml
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
steps:
|
||||||
|
- name: build
|
||||||
|
image: nixos/nix
|
||||||
|
commands:
|
||||||
|
- echo 'experimental-features = flakes nix-command' >> /etc/nix/nix.conf
|
||||||
|
- nix profile install nixpkgs#gnused --impure
|
||||||
|
- sed -i "s|base_url = \"https://www.softinio.com\"|base_url = \"https://$CI_COMMIT_BRANCH.softinio.com\"|" ./config.toml
|
||||||
|
- nix build
|
||||||
|
- nix flake show
|
||||||
|
- ls result
|
||||||
|
- nix develop --command wrangler pages deploy result --branch=$CI_COMMIT_BRANCH --project-name=softinio --commit-dirty=true
|
||||||
|
environment:
|
||||||
|
CLOUDFLARE_ACCOUNT_ID:
|
||||||
|
from_secret: cloudflare_account_id
|
||||||
|
CLOUDFLARE_API_TOKEN:
|
||||||
|
from_secret: cloudflare_api_token
|
||||||
|
when:
|
||||||
|
event: [push]
|
||||||
|
branch:
|
||||||
|
exclude: [ main ]
|
||||||
|
|
||||||
|
- name: deploy
|
||||||
|
image: nixos/nix
|
||||||
|
commands:
|
||||||
|
- echo 'experimental-features = flakes nix-command' >> /etc/nix/nix.conf
|
||||||
|
- nix build
|
||||||
|
- nix develop --command wrangler pages deploy result --project-name=softinio --commit-dirty=true
|
||||||
|
environment:
|
||||||
|
CLOUDFLARE_ACCOUNT_ID:
|
||||||
|
from_secret: cloudflare_account_id
|
||||||
|
CLOUDFLARE_API_TOKEN:
|
||||||
|
from_secret: cloudflare_api_token
|
||||||
|
when:
|
||||||
|
event: push
|
||||||
|
branch: main
|
83
CLAUDE.md
83
CLAUDE.md
|
@ -1,83 +0,0 @@
|
||||||
# CLAUDE.md
|
|
||||||
|
|
||||||
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
|
||||||
|
|
||||||
## Overview
|
|
||||||
|
|
||||||
This is a personal blog and portfolio website for Salar Rahmanian (softinio.com) built with Zola static site generator, managed with Nix Flakes, and deployed to Cloudflare Pages.
|
|
||||||
|
|
||||||
## Commands
|
|
||||||
|
|
||||||
### Development
|
|
||||||
```bash
|
|
||||||
# Enter development shell with all dependencies
|
|
||||||
nix develop
|
|
||||||
|
|
||||||
# Start local development server
|
|
||||||
zola serve
|
|
||||||
|
|
||||||
# Build the site
|
|
||||||
zola build
|
|
||||||
```
|
|
||||||
|
|
||||||
### Building with Nix
|
|
||||||
```bash
|
|
||||||
# Build the site using Nix
|
|
||||||
nix build
|
|
||||||
|
|
||||||
# The output will be in result/
|
|
||||||
|
|
||||||
# Update flake inputs to latest versions
|
|
||||||
nix flake update
|
|
||||||
```
|
|
||||||
|
|
||||||
### Deployment
|
|
||||||
```bash
|
|
||||||
# Deploy to Cloudflare Pages
|
|
||||||
wrangler pages deploy public/
|
|
||||||
```
|
|
||||||
|
|
||||||
### Testing
|
|
||||||
```bash
|
|
||||||
# Check for broken links and validate build
|
|
||||||
zola check
|
|
||||||
```
|
|
||||||
|
|
||||||
### CI/CD
|
|
||||||
|
|
||||||
This project uses GitHub Actions for continuous integration and deployment:
|
|
||||||
|
|
||||||
- **Main branch pushes**: Deploys directly to production (https://www.softinio.com)
|
|
||||||
- **Pull requests**: Deploys to preview URLs (https://[branch-name].softinio.com)
|
|
||||||
- **Other branch pushes**: No deployment (only builds on PR creation)
|
|
||||||
|
|
||||||
Required secrets in GitHub repository settings:
|
|
||||||
- `CLOUDFLARE_ACCOUNT_ID`: Your Cloudflare account ID
|
|
||||||
- `CLOUDFLARE_API_TOKEN`: Cloudflare API token with Pages:Edit permissions
|
|
||||||
|
|
||||||
## Architecture
|
|
||||||
|
|
||||||
### Technology Stack
|
|
||||||
- **Static Site Generator**: Zola (Rust-based) - NOT Hugo
|
|
||||||
- **Theme**: Tabi theme (pinned to specific commit in flake.nix)
|
|
||||||
- **Package Management**: Nix Flakes
|
|
||||||
- **Hosting**: Cloudflare Pages
|
|
||||||
- **Comments**: Isso (self-hosted at comments.softinio.com)
|
|
||||||
- **Analytics**: Matomo (self-hosted at wisdom.softinio.com)
|
|
||||||
|
|
||||||
### Content Structure
|
|
||||||
- `content/post/`: Main blog articles with full metadata
|
|
||||||
- `content/projects/`: Project showcase pages
|
|
||||||
- `content/talks/`: Conference presentations
|
|
||||||
- `content/til/`: "Today I Learned" short posts
|
|
||||||
- `content/archived/`: Archived posts
|
|
||||||
|
|
||||||
### Key Configuration Files
|
|
||||||
- `config.toml`: Zola site configuration with theme settings, CSP headers, and integrations
|
|
||||||
- `flake.nix`: Nix development environment and build configuration
|
|
||||||
- `wrangler.toml`: Cloudflare deployment configuration
|
|
||||||
|
|
||||||
### Template Customizations
|
|
||||||
- `templates/partials/custom_header.html`: Matomo analytics integration
|
|
||||||
- `templates/shortcodes/`: YouTube and PeerTube video embedding
|
|
||||||
- `templates/subscribe.html`: Newsletter subscription page
|
|
|
@ -1,4 +1,4 @@
|
||||||
[](https://github.com/softinio/softinio.com/actions/workflows/deploy.yml)
|
[](https://ci.softinio.com/repos/1)
|
||||||
|
|
||||||
# softinio.com
|
# softinio.com
|
||||||
Personal Blog of Salar Rahmanian, https://www.softinio.com
|
Personal Blog of Salar Rahmanian, https://www.softinio.com
|
||||||
|
|
|
@ -3,7 +3,7 @@ theme = "tabi"
|
||||||
title = "Salar Rahmanian"
|
title = "Salar Rahmanian"
|
||||||
description = "Software Engineer based in San Francisco Bay Area"
|
description = "Software Engineer based in San Francisco Bay Area"
|
||||||
author = "Salar Rahmanian"
|
author = "Salar Rahmanian"
|
||||||
generate_feeds = true
|
generate_feed = true
|
||||||
compile_sass = true
|
compile_sass = true
|
||||||
minify_html = true
|
minify_html = true
|
||||||
build_search_index = true
|
build_search_index = true
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue