仄äžă§ăŻă2025ćčŽ7æ10æ„ăăăšăăŻăčă”ăŒăăŒæ ȘćŒäŒç€Ÿăćœć ćăšăăŠæäŸăéć§ăăăćźć šçĄæVPSïŒXServer VPSïŒăăźæŠèŠăšăăčăŻăȘăăă«ăăèȘćæŽæ°æčæłăSSHæ„ç¶èšćźăăăăŠAIăąăăȘă€ăĄăŒăžăšăăŠăDifyăăClaude CodeăăäœżăăăăšăăŸăšăăŠăăŸăă
æŠèŠ
ăšăăŻăčă”ăŒăăŒæ ȘćŒäŒç€ŸăŻ2025ćčŽ7æ10æ„ăVPSïŒä»źæłć°çšă”ăŒăăŒïŒă”ăŒăăčăXServer VPSăă«ăăăŠăćæèČ»çšă»æéĄèČ»çšăäžćäžèŠăźćźć
šçĄæVPSăćœć
ă§ćăăŠæäŸéć§ăăŸăă (ăăŹăčăȘăȘăŒăčă»ăă„ăŒăčăȘăȘăŒăčé
俥ă·ă§ăąNo.1ïœPR TIMES)ă
ăĄăąăȘăŻ2 GBăŸăăŻ4 GBăăéžæă§ăăCPUăŻ2ăłăąïŒ3ăłăąăăăŁăčăŻ30 GBăăăăăŻăŒăŻćžŻć30 Mbpsăšăă髿§èœăȘăčăăăŻăçĄćă§äœéšă§ăăŸă (ăăŹăčăȘăȘăŒăčă»ăă„ăŒăčăȘăȘăŒăčé
俥ă·ă§ăąNo.1ïœPR TIMES)ă
AIéçșăWebă”ăŒăăčăźæ€èšŒăȘă©ăć€ćœ©ăȘçšéă«ăăćăăăăăç°ćąăšăăŠæłšçźăăăŠăăŸă (ăăŹăčăȘăȘăŒăčă»ăă„ăŒăčăȘăȘăŒăčé
俥ă·ă§ăąNo.1ïœPR TIMES)ă
çĄæVPSăźæŠèŠ
æäŸéć§ăšèæŻ
- æäŸéć§æ„ïŒ2025ćčŽ7æ10æ„ïŒæšïŒ (ăăŹăčăȘăȘăŒăčă»ăă„ăŒăčăȘăȘăŒăčé 俥ă·ă§ăąNo.1ïœPR TIMES)
- èæŻïŒæłäșșă»ćäșșăćăăçæAIăWebăąăăȘéçșăźăăŒășăæ„ćąăăŠăăăăăŒăłăčăă§é«æ§èœăȘVPSç°ćąă詊çšă§ăăæ°ă”ăŒăăčăšăăŠç»ć ŽăăŸăă (ăăŹăčăȘăȘăŒăčă»ăă„ăŒăčăȘăȘăŒăčé 俥ă·ă§ăąNo.1ïœPR TIMES)ă
ăčăăăŻæŠèŠ
é çź | ć ćźč |
---|---|
ăĄăąăȘ | 2 GB / 4 GB |
CPU | 2ăłăą / 3ăłăą |
ăăŁăč㯠| 30 GB |
ăăăăŻăŒăŻćžŻć | 30 Mbps |
XServeră”ăăăĄă€ăł | ć©çšćŻ |
ć„çŽæŽæ° | æć ă»2 GBæ§æïŒ4æ„ăăš ă»4 GBæ§æïŒ2æ„ăăš (ăăŹăčăȘăȘăŒăčă»ăă„ăŒăčăȘăȘăŒăčé 俥ă·ă§ăąNo.1ïœPR TIMES) |
AIăąăăȘă€ăĄăŒăžăšăăŠăźăăŒă«
Dify
ăDifyăăŻăȘăŒăăłăœăŒăčăźLLMăąăăȘéçșăă©ăăăă©ăŒă ă§ăçæAIăąăăȘă±ăŒă·ă§ăłæ§çŻă«æé©ă§ă (ăăŹăčăȘăȘăŒăčă»ăă„ăŒăčăȘăȘăŒăčé
俥ă·ă§ăąNo.1ïœPR TIMES)ă
XServer VPSäžăźăăąăăȘă€ăĄăŒăžăæ©èœăăéžæăăăšăăçłă蟌ăżăšćæă«ç°ćąăèȘćæ§çŻăăăŸă (ăăŹăčăȘăȘăŒăčă»ăă„ăŒăčăȘăȘăŒăčé
俥ă·ă§ăąNo.1ïœPR TIMES)ă
Claude Code
2025ćčŽ6æ30æ„ăăăAIăłăŒăăŁăłă°æŻæŽăăŒă«ăClaude CodeăăźăąăăȘă€ăĄăŒăžăć©çšćŻèœă«ăȘăăŸăă (itbusinesstoday)ă
仟æłć°çšă”ăŒăăŒäžă§çŹç«ăăćźć
šăȘç°ćąăăăă«ç«ăĄäžăăŠăăăăăŻăŒăŻă瀟ć
ăăȘă·ăŒă«ćœ±éżăäžăăă«ć°ć
„ă§ăăŸă (itbusinesstoday)ă
æćæŽæ°ăèȘćć
import puppeteer from 'puppeteer'
import { setTimeout } from 'node:timers/promises'
const browser = await puppeteer.launch({
defaultViewport: {width: 1080, height: 1024},
args: ['--no-sandbox', '--disable-setuid-sandbox'],
})
const [page] = await browser.pages()
const recorder = await page.screencast({ path: 'recording.webm' })
try {
await page.goto('https://secure.xserver.ne.jp/xapanel/login/xserver/')
await page.locator('#memberid').fill(process.env.EMAIL)
await page.locator('#user_password').fill(process.env.PASSWORD)
await page.click('text=ăă°ă€ăłăă')
await page.waitForNavigation()
await page.goto('https://secure.xserver.ne.jp/xapanel/xvps/index')
await page.click('.contract__menuIcon')
await page.click('text=ć„çŽæ
ć ±')
await page.click('text=æŽæ°ăă')
await page.click('text=ćŒăç¶ăçĄæVPSăźć©çšăç¶ç¶ăă')
await page.waitForNavigation()
await page.click('text=çĄæVPSăźć©çšăç¶ç¶ăă')
} catch (e) {
console.error(e)
} finally {
await setTimeout(2000)
await recorder.stop()
await browser.close()
}
on:
schedule:
- cron: 0 15 * * *
push:
jobs:
job:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v4
- run: sudo apt-get -qq update && sudo apt-get -yqq install --no-install-recommends ffmpeg fonts-noto-cjk
- run: yarn add puppeteer
- run: node main.mjs
env:
EMAIL: ${{ secrets.EMAIL }}
PASSWORD: ${{ secrets.PASSWORD }}
- uses: actions/upload-artifact@v4
with:
path: recording.webm
äžèšăȘăăžăăȘăăă©ăŒăŻăăŠăĄăŒă«ăąăăŹăčăšăăčăŻăŒăăèšćźăăŠăăăă§ăă
SSHæ„ç¶æčæł
ăżăŒăăă«ăă仄äžăźăłăăłăă§æ„ç¶
ssh -i private.key root@ă”ăŒăăŒăźIPăąăăŹăč
ăšăăŁăă·ăłăă«ăȘæé ă§ root æš©éăźă·ă§ă«ă«ăă°ă€ăłă§ăăŸă (Qiita)ă
ăŸăšă
- ćźć šçĄæă§æéĄèČ»çšäžèŠăźé«æ§èœVPSăćœć ă§ćć°ć „ (ăăŹăčăȘăȘăŒăčă»ăă„ăŒăčăȘăȘăŒăčé 俥ă·ă§ăąNo.1ïœPR TIMES)
- 2 GB/4 GBăĄăąăȘă2â3ăłăąCPUă30 GBăăŁăčăŻă30 Mbps枯ćăšććăȘăčăă㯠(ăăŹăčăȘăȘăŒăčă»ăă„ăŒăčăȘăȘăŒăčé 俥ă·ă§ăąNo.1ïœPR TIMES)
- AIéçșćăă«ăDifyăăClaude CodeăăȘă©ăźăąăăȘă€ăĄăŒăžă«ćŻŸćż (ăăŹăčăȘăȘăŒăčă»ăă„ăŒăčăȘăȘăŒăčé 俥ă·ă§ăąNo.1ïœPR TIMES, itbusinesstoday)
- GitHubäžăźăčăŻăȘăăă§èȘćæŽæ°ćŻèœ ([GitHub][3])
- SSHæ„ç¶ăé”èȘ蚌ă§ç°Ąćèšćź (Qiita)
WebăąăăȘéçșăăçæAIăźè©ŠçšăŸă§ăăăŒăłăčăă§ć§ăăăăăXServer VPSăăăăČă詊ăăă ăăă
Comments
Thanks For Sharing
ăšăăăźă§ GitHub Actions ăźăă€ăŻæ¶ăăæčăèŻăăăă§ăă
èȘćæŽæ°ăŻăăĄă§ăăăäžæŁèĄçșă§ăăă
Let's comment your feelings that are more than good