Skip to content

opensuse-id/openSUSE-ID-website

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

8 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

openSUSE Indonesia Website

Website resmi komunitas openSUSE Indonesia - Mempromosikan penggunaan Linux dan open source di Indonesia.

openSUSE Indonesia

πŸ“‹ Daftar Isi

🎯 Tentang Project

Website komunitas openSUSE Indonesia yang dibangun dengan React, menampilkan informasi tentang openSUSE, blog/artikel, repositori lokal, dan informasi komunitas.

URL Terkait

πŸ› οΈ Teknologi

Project ini dibangun menggunakan teknologi modern:

  • React 19 - UI Framework
  • React Router DOM 7 - Routing
  • Tailwind CSS 3 - Styling
  • CRACO - Configuration Override untuk CRA
  • Radix UI - Component Library
  • Lucide React - Icons
  • React Hook Form - Form Management
  • Zod - Schema Validation

πŸ“¦ Prerequisite

Pastikan sistem Anda sudah terinstall:

  • Node.js >= 18.x
  • Yarn 1.22.x (Package Manager)
  • Git

Cek versi:

node --version
yarn --version
git --version

πŸš€ Instalasi

1. Clone Repository

git clone https://github.com/opensuse-id/openSUSE-ID-website.git
cd openSUSE-ID-website

2. Install Dependencies

yarn install

3. Setup Environment

Buat file .env atau gunakan yang sudah ada:

HOST=localhost
PORT=8080
DEBUG=true

Note: Jika Anda memiliki environment variable HOST yang ter-set di shell (misalnya di .zshrc), gunakan perintah HOST=localhost yarn start untuk override.

πŸ’» Development

Menjalankan Development Server

yarn start
# atau jika ada konflik HOST
HOST=localhost yarn start

Server akan berjalan di http://localhost:8080

Hot Reload

Development server mendukung hot reload. Perubahan pada code akan otomatis ter-refresh di browser.

Available Scripts

# Development server
yarn start

# Build production
yarn build

# Run tests
yarn test

πŸ—οΈ Build Production

Build untuk Deployment

yarn build

Output akan tersimpan di folder build/ yang siap untuk di-deploy ke production server.

Preview Build

Setelah build, Anda bisa preview menggunakan static server:

npx serve -s build

πŸ“ Struktur Project

openSUSE-ID-website/
β”œβ”€β”€ public/                 # Static files
β”‚   β”œβ”€β”€ index.html         # HTML template
β”‚   β”œβ”€β”€ manifest.json      # PWA manifest
β”‚   └── _redirects         # Netlify redirects
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ components/        # React components
β”‚   β”‚   β”œβ”€β”€ Layout.jsx     # Main layout (Header & Footer)
β”‚   β”‚   β”œβ”€β”€ ImageWithFallback.jsx  # Image component dengan error handling
β”‚   β”‚   └── ui/            # Shadcn/UI components
β”‚   β”œβ”€β”€ pages/             # Page components
β”‚   β”‚   β”œβ”€β”€ HomePage.jsx
β”‚   β”‚   β”œβ”€β”€ BlogPage.jsx
β”‚   β”‚   β”œβ”€β”€ BlogPost.jsx
β”‚   β”‚   β”œβ”€β”€ TentangKami.jsx
β”‚   β”‚   β”œβ”€β”€ TentangOpenSUSE.jsx
β”‚   β”‚   β”œβ”€β”€ HubungiPage.jsx
β”‚   β”‚   β”œβ”€β”€ Repositori.jsx
β”‚   β”‚   └── AsiaSummit*.jsx
β”‚   β”œβ”€β”€ data/              # Data files
β”‚   β”‚   └── blogPosts.js   # Blog posts data
β”‚   β”œβ”€β”€ hooks/             # Custom React hooks
β”‚   β”‚   └── use-toast.js
β”‚   β”œβ”€β”€ lib/               # Utilities
β”‚   β”‚   └── utils.js
β”‚   β”œβ”€β”€ App.js             # Main app component
β”‚   β”œβ”€β”€ index.js           # Entry point
β”‚   └── index.css          # Global styles
β”œβ”€β”€ plugins/               # Custom webpack plugins
β”‚   β”œβ”€β”€ health-check/      # Health check endpoint
β”‚   └── visual-edits/      # Visual editing support
β”œβ”€β”€ .env                   # Environment variables
β”œβ”€β”€ craco.config.js        # CRACO configuration
β”œβ”€β”€ tailwind.config.js     # Tailwind CSS config
β”œβ”€β”€ postcss.config.js      # PostCSS config
β”œβ”€β”€ jsconfig.json          # JavaScript config
└── package.json           # Dependencies

✨ Fitur

1. Homepage

  • Hero section dengan animasi
  • Informasi tentang openSUSE
  • Download links untuk Leap & Tumbleweed
  • Preview blog terbaru
  • Statistik komunitas

2. Blog

  • List artikel/berita
  • Filter berdasarkan kategori
  • Pagination
  • Detail artikel

3. Repository

  • Informasi repositori lokal Indonesia
  • Mirror list
  • Panduan konfigurasi

4. About

  • Tentang openSUSE
  • Tentang komunitas Indonesia
  • Timeline kegiatan

5. Contact

  • Form kontak
  • Social media links
  • Informasi komunitas

6. Component Features

  • Image lazy loading dengan fallback
  • Responsive design
  • Dark mode ready (dengan next-themes)
  • Smooth animations
  • SEO friendly

πŸ”§ Troubleshooting

Error: ENOTFOUND hostname

Jika Anda mendapat error seperti Error: getaddrinfo ENOTFOUND $HOSTNAME, ini karena environment variable HOST belum di-set.

Solusi:

# Temporary fix
HOST=localhost yarn start

# Permanent fix - tambahkan alias di ~/.zshrc
echo 'alias yarn-start="HOST=localhost yarn start"' >> ~/.zshrc
source ~/.zshrc

Port sudah digunakan

Jika port 8080 sudah digunakan, ubah di file .env:

PORT=3000

Webpack Deprecation Warnings

Warning tentang onAfterSetupMiddleware dan onBeforeSetupMiddleware adalah normal dan tidak mempengaruhi development. Ini karena webpack-dev-server API yang deprecated.

Image tidak muncul

Project ini sudah dilengkapi dengan ImageWithFallback component yang otomatis handle gambar yang gagal load. Jika gambar tidak muncul:

  1. Cek koneksi internet
  2. Pastikan URL gambar valid
  3. Lihat console browser untuk error details

🀝 Kontribusi

Kontribusi sangat diterima! Berikut cara berkontribusi:

  1. Fork repository ini
  2. Buat branch baru (git checkout -b feature/AmazingFeature)
  3. Commit perubahan (git commit -m 'Add some AmazingFeature')
  4. Push ke branch (git push origin feature/AmazingFeature)
  5. Buat Pull Request

Coding Guidelines

  • Gunakan functional components dengan hooks
  • Follow existing code style
  • Tambahkan comments untuk logic yang kompleks
  • Test perubahan Anda sebelum commit
  • Gunakan Tailwind CSS untuk styling
  • Komponen reusable disimpan di src/components/
  • Page components di src/pages/

πŸ“ Lisensi

Project ini dilisensikan untuk komunitas openSUSE Indonesia.

πŸ‘₯ Tim

Dikembangkan dan dimaintain oleh Komunitas openSUSE Indonesia

πŸ“ž Kontak

πŸ™ Acknowledgments

  • openSUSE Project
  • Cloudkilat untuk donasi server repositori
  • Semua kontributor komunitas openSUSE Indonesia

About

Official Website Komunitas openSUSE Indonesia

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors