Compare commits
3 commits
17ffdde1db
...
e2a0346400
| Author | SHA1 | Date | |
|---|---|---|---|
| e2a0346400 | |||
| 1cf9933d08 | |||
| 989b829a20 |
6 changed files with 141 additions and 8 deletions
59
.github/copilot-instructions.md
vendored
Normal file
59
.github/copilot-instructions.md
vendored
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
# Copilot Instructions for n-daisuke897-blog
|
||||
|
||||
## Project Overview
|
||||
This is a personal blog named "Naputo" built with Astro and Preact. The blog is designed to publish articles and content with a modern static site generation approach.
|
||||
|
||||
**Repository**: https://git.n-daisuke897.com/nakada0907/n-daisuke897-blog
|
||||
|
||||
## Tech Stack
|
||||
- **Framework**: Astro 5.x
|
||||
- **UI Library**: Preact 10.x for interactive components
|
||||
- **Language**: TypeScript
|
||||
- **Build Tool**: Astro CLI
|
||||
- **RSS**: @astrojs/rss for RSS feed generation
|
||||
- **Linting**: ESLint with TypeScript and Astro plugins
|
||||
|
||||
## Project Structure
|
||||
- `src/`: Source code
|
||||
- `pages/`: Astro pages (routing based on file structure)
|
||||
- `layouts/`: Layout components
|
||||
- `components/`: Reusable components
|
||||
- `blog/`: Blog content
|
||||
- `styles/`: Global styles
|
||||
- `scripts/`: Utility scripts
|
||||
- `content.config.ts`: Content collection configuration
|
||||
- `public/`: Static assets (images, fonts, etc.)
|
||||
- `dist/`: Build output directory
|
||||
- `buildspec.yml`: AWS CodeBuild configuration
|
||||
|
||||
## Development Guidelines
|
||||
|
||||
### Commands
|
||||
- `npm install`: Install dependencies
|
||||
- `npm run dev`: Start local development server at `localhost:4321`
|
||||
- `npm run build`: Build production site to `./dist/`
|
||||
- `npm run preview`: Preview production build locally
|
||||
- `npm run astro`: Run Astro CLI commands
|
||||
|
||||
### Coding Standards
|
||||
- Use TypeScript for all new code
|
||||
- Follow the ESLint configuration provided
|
||||
- Use Preact components for interactive UI elements
|
||||
- Keep components modular and reusable
|
||||
- Use Astro's component syntax for static content
|
||||
|
||||
### File Naming
|
||||
- Use kebab-case for file names
|
||||
- Use PascalCase for component names
|
||||
- Use `.astro` extension for Astro components
|
||||
- Use `.tsx` extension for Preact components
|
||||
|
||||
### Best Practices
|
||||
- Prefer static generation over client-side rendering when possible
|
||||
- Use Astro's content collections for blog posts
|
||||
- Optimize images and assets before adding to `public/`
|
||||
- Keep bundle size minimal - Astro ships zero JS by default
|
||||
- Use Preact only when client interactivity is needed
|
||||
|
||||
## Deployment
|
||||
This project uses AWS CodeBuild for deployment (see `buildspec.yml`).
|
||||
64
src/blog/post-5.md
Normal file
64
src/blog/post-5.md
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
---
|
||||
title: 'Fixing GitHub Copilot CLI System Vault Error with systemd'
|
||||
pubDate: 2026-01-02
|
||||
author: 'Nakahara Daisuke'
|
||||
tags: ["GitHub", "AI"]
|
||||
---
|
||||
|
||||
When installing GitHub Copilot CLI, you may encounter the error message: `The system vault (keychain, keyring, password manager, etc.) is not available. You may need to install one.` The solution was documented in [this issue](https://github.com/github/copilot-cli/issues/49).
|
||||
|
||||
This article explains how to resolve this issue using `systemd`.
|
||||
|
||||
### Install via Apt
|
||||
|
||||
```bash
|
||||
$ sudo apt update
|
||||
```
|
||||
```bash
|
||||
$ sudo apt install -y \
|
||||
gnome-keyring \
|
||||
libsecret-1-0 \
|
||||
libsecret-tools \
|
||||
seahorse
|
||||
```
|
||||
|
||||
### Verify systemd is running
|
||||
```bash
|
||||
$ systemctl is-system-running
|
||||
```
|
||||
|
||||
### Check if the user service is enabled
|
||||
```bash
|
||||
$ systemctl --user status gnome-keyring-daemon
|
||||
○ gnome-keyring-daemon.service - GNOME Keyring daemon
|
||||
Loaded: loaded (/usr/lib/systemd/user/gnome-keyring-daemon.service; enabled; preset: enabled)
|
||||
Active: inactive (dead)
|
||||
TriggeredBy: ○ gnome-keyring-daemon.socket
|
||||
```
|
||||
```bash
|
||||
$ systemctl --user enable gnome-keyring-daemon
|
||||
```
|
||||
```bash
|
||||
$ systemctl --user start gnome-keyring-daemon
|
||||
```
|
||||
```bash
|
||||
$ systemctl --user status gnome-keyring-daemon
|
||||
● gnome-keyring-daemon.service - GNOME Keyring daemon
|
||||
Loaded: loaded (/usr/lib/systemd/user/gnome-keyring-daemon.service; enabled; preset: enabled)
|
||||
Active: active (running) since Fri 2026-01-02 08:36:46 JST; 3s ago
|
||||
Invocation: d830e5563e974edc9265650d11dfa086
|
||||
TriggeredBy: ● gnome-keyring-daemon.socket
|
||||
Main PID: 5222 (gnome-keyring-d)
|
||||
Tasks: 5 (limit: 9422)
|
||||
Memory: 3.4M (peak: 3.9M)
|
||||
CPU: 37ms
|
||||
CGroup: /user.slice/user-1000.slice/user@1000.service/app.slice/gnome-keyring-daemon.service
|
||||
└─5222 /usr/bin/gnome-keyring-daemon --foreground --components=pkcs11,secrets --control-directory=/run/user/1000/keyring
|
||||
|
||||
Jan 02 08:36:46 hostname systemd[649]: Started gnome-keyring-daemon.service - GNOME Keyring daemon.
|
||||
Jan 02 08:36:46 hostname gnome-keyring-daemon[5222]: GNOME_KEYRING_CONTROL=/run/user/1000/keyring
|
||||
Jan 02 08:36:46 hostname gnome-keyring-daemon[5222]: another secret service is running
|
||||
Jan 02 08:36:46 hostname gnome-keyring-d[5222]: another secret service is running
|
||||
```
|
||||
|
||||
> **Note**: This article was translated from Japanese to English and reviewed with the assistance of AI (GitHub Copilot).
|
||||
|
|
@ -16,5 +16,5 @@
|
|||
</style>
|
||||
|
||||
<footer>
|
||||
<p class="legal-information">© 2025 Nakahara Daisuke</p>
|
||||
<p class="legal-information">© 2026 Nakahara Daisuke — Built with <a href="https://astro.build" target="_blank" rel="noopener">Astro</a></p>
|
||||
</footer>
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
<a href="/about/">About</a>
|
||||
<a href="/blog/">Articles</a>
|
||||
<a href="/tags/">Tags</a>
|
||||
<a href="https://git.n-daisuke897.com/" target="_blank">
|
||||
<a href="https://git.n-daisuke897.com/nakada0907/" target="_blank">
|
||||
<img src="/icon/simple-icons--forgejo.svg" alt="Forgejo Icon">
|
||||
</a>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -49,18 +49,27 @@ const optionsForDate = {
|
|||
|
||||
.markdown-content {
|
||||
font-family: sans-serif;
|
||||
font-size: 1.2rem;
|
||||
line-height: 2.5;
|
||||
font-size: 1.1rem;
|
||||
line-height: 1.8;
|
||||
}
|
||||
|
||||
.markdown-content h1 {
|
||||
font-size: 1.9rem;
|
||||
font-size: 1.6rem;
|
||||
margin-top: 2rem;
|
||||
margin-bottom: 1rem;
|
||||
line-height: 1.3;
|
||||
}
|
||||
.markdown-content h2 {
|
||||
font-size: 1.75rem;
|
||||
font-size: 1.4rem;
|
||||
margin-top: 1.8rem;
|
||||
margin-bottom: 0.8rem;
|
||||
line-height: 1.3;
|
||||
}
|
||||
.markdown-content h3 {
|
||||
font-size: 1.5rem;
|
||||
font-size: 1.2rem;
|
||||
margin-top: 1.5rem;
|
||||
margin-bottom: 0.6rem;
|
||||
line-height: 1.3;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import BlogPost from "../components/BlogPost.astro";
|
|||
import { getCollection } from "astro:content";
|
||||
const pageTitle = "Naputo";
|
||||
const allPosts = await getCollection("blog");
|
||||
const sortedPosts = allPosts.sort((a, b) => b.data.pubDate.valueOf() - a.data.pubDate.valueOf());
|
||||
---
|
||||
|
||||
<style>
|
||||
|
|
@ -41,7 +42,7 @@ const allPosts = await getCollection("blog");
|
|||
<h3 class="header-new-posts">New Posts</h3>
|
||||
<div class="new-articles">
|
||||
{
|
||||
allPosts.slice(0, 6).map((post: any) => (
|
||||
sortedPosts.slice(0, 5).map((post: any) => (
|
||||
<BlogPost
|
||||
url={`/posts/${post.id}/`}
|
||||
title={post.data.title}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue